Обработайте произвольное исключение, сообщение об исключении значения по умолчанию печати

У меня есть программа, часть которой выполняет цикл. Во время выполнения этого цикла существуют исключения. Очевидно, я хотел бы, чтобы моя программа работала без ошибок, но ради прогресса, я хотел бы, чтобы программа выполнилась по всему входу и не остановке, когда исключение выдается. Самый легкий способ сделать это было бы путем реализации except блок.

Однако, когда я делаю это, это excepts все исключения и продолжает программу, и я никогда не добираюсь для наблюдения сообщения об исключении, в котором я нуждаюсь для отладки.

Есть ли путь к except любое произвольное исключение и смочь распечатать сообщение об исключении в except блок?

18
задан Ben 29 April 2012 в 17:14
поделиться

4 ответа

[
try:
    #stuff
except Exception as e:
    print e
] [

]Модуль []traceback[] предоставляет различные функции для извлечения дополнительной информации из объекта исключения ([]e[], выше).[

]. Источник [

] Источник [] Ошибки и исключения [] [

]
20
ответ дан 30 November 2019 в 06:42
поделиться

Рассмотрим возможность использования модуля протоколирования на Python, это даст вам много функциональных возможностей для протоколирования проблем для последующего просмотра. Ниже приведён простой пример использования модуля протоколирования для протоколирования исключений:

import logging
LOG_FILE = '/tmp/exceptions.log'
logging.basicConfig(filename=LOG_FILE,level=logging.ERROR)

while True:
try:
    # Code that may throw exceptions
except Exception, e:
    logging.exception("An exception happened")

С помощью функции log.exception внутри обработчика исключений, как это делается здесь, информация об исключении автоматически добавляется в сообщение протоколирования.

.
12
ответ дан 30 November 2019 в 06:42
поделиться
[
while True:
    try:
        # Do your stuff
    except Exception, e:
        print "Something happened: %s" % e
]
4
ответ дан 30 November 2019 в 06:42
поделиться

Я считаю, что это гораздо более полезно для отладки:

from traceback import print_exc
try:
    raise Exception("doh!")
except:
    print_exc()
4
ответ дан 30 November 2019 в 06:42
поделиться
Другие вопросы по тегам:

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