Как я знаю, какой контракт перестал работать с contract.py Python?

@Override

public void onDestroy() {

    Log.d(TAG, "onDestroy");
    super.onDestroy();
    if (mLocationManager != null) {

        for (int i = 0; i < mLocationListeners.length; i++) {

            try {

                mLocationManager.removeUpdates(mLocationListeners[i]);

            } catch (Exception ex) {

                Log.d(TAG, "fail to remove location listners, ignore", ex);

            }

        }

    }

}
1
задан Lorin Hochstein 19 June 2009 в 13:35
поделиться

1 ответ

Я не думаю, что вы сможете, не изменяя его код, но поскольку это питон ...

Если вы посмотрите, где он вызывает исключение для пользователя, я думаю, что это можно вставить туда информацию, которую вы ищете ... Я не ожидал, что вы сможете получить обратную трассировку лучше, потому что код фактически содержится в блоке комментариев, а затем обрабатывается.

Код довольно сложный, но это может быть блок, на который стоит взглянуть - может быть, если вы выгрузите некоторые из аргументов, вы сможете понять, что происходит ...

def _check_preconditions(a, func, va, ka):
    # ttw006: correctly weaken pre-conditions...
    # ab002: Avoid generating AttributeError exceptions...
    if hasattr(func, '__assert_pre'):
        try:
            func.__assert_pre(*va, **ka)
        except PreconditionViolationError, args:
            # if the pre-conditions fail, *all* super-preconditions
            # must fail too, otherwise
            for f in a:
                if f is not func and hasattr(f, '__assert_pre'):
                    f.__assert_pre(*va, **ka)
                    raise InvalidPreconditionError(args)
            # rr001: raise original PreconditionViolationError, not
            # inner AttributeError...
            # raise
            raise args
            # ...rr001
    # ...ab002
    # ...ttw006
1
ответ дан 3 September 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: