Можно ли отменить исключение, которое не было обнаружено?

У меня есть ситуация, когда я хочу использовать пользовательский sys.excepthook. Когда программа выдает исключение, вызов sys.except вызывает вызов и делает некоторые вещи.

Пример:

import sys def ehook(exctype, value, traceback): t = 'Keys' if exctype == AttributeError and value.args[0].split("'")[1] == t: print "t %s" % (t,) else: sys.__excepthook__(exctype, value, traceback) sys.excepthook = ehook class Keys(): @staticmethod def x(): print "this is Keys.x()" if __name__ == "__main__": Keys.x() Keys.noexist() print "I want to continue here and beyond..." 

Есть ли способ отменить активное исключение в excepthook, чтобы он не выходил из программы?

One Solution collect form web for “Можно ли отменить исключение, которое не было обнаружено?”

Нет. К тому времени, sys.excepthook вызывается sys.excepthook , исключение уже не отображается на верхнем уровне, и программа выйдет после того, как sys.excepthook свою работу. (См. Документацию .) В целом исключения не возобновляются в Python: вы обрабатываете их там, где вы их ловите, вы не можете просто продолжать с того места, где они были. См. Эту тему для обсуждения.

Изменить. Основываясь на вашем комментарии, это не похоже на то, что вы пытаетесь поймать все исключения в своей программе. Вы просто хотите поймать неопределенные запросы атрибутов на определенные объекты. Если это так, просто определите __getattr__ в своем классе.

  • Python: каков самый быстрый способ сопоставить или сжать вызовы и игнорировать ошибки?
  • Почему Python не выходит из повышенного исключения при выполнении с абсолютным путем?
  • Регистрация запрещенных исключений в Python
  • Как остановить программу, когда в Python возникает исключение?
  • Исключение прохождения в Python
  • Добавление информации в исключение?
  • Python: получение сообщения об ошибке исключения
  • traceback.print_exc () вопрос python
  •  
    Interesting Posts for Van-Lav

    Идентификатор клиентского ключа Google App Engine NDB

    Доступ к элементам во вложенном списке

    pymssql: подключение к базе данных работает только иногда

    очереди на кроличом, заполняемые задачами сельдерея

    IOError: ошибка чтения данных запроса

    AttributeError при запросе: ни объект InstrumentedAttribute, ни 'Comparator' не имеют атрибута

    Проблема при импорте LoginManager из flask.ext.login

    Как сделать многократную перегрузку __add__ независимой по порядку операнда?

    Получить время создания файла с помощью Python on linux

    Неожиданные результаты методов min () и max () серии Pandas из объектов Timestamp

    Как передать список / массив структур с python на C

    Django – Как включить аннотированные результаты в сериализованном QuerySet?

    Правильный способ определения кодировки исходного кода Python

    Как я могу запустить периодическую задачу сельдерея из оболочки вручную?

    Объединение столбцов нескольких файлов в один файл – Python

    Python - лучший язык программирования в мире.