Я использую пользовательский интерфейс PyQt4. Я перенаправил stderr в файл журнала для легкой отладки и устранения неполадок, но теперь мне нужно отображать сообщения об ошибках пользователю при возникновении ошибки.Как отображать ошибки пользователю при записи?
Моя проблема в том, что мне нужно поймать исключение, когда это произойдет, и сообщить пользователю, что это произошло, но все равно позволить трассировке распространяться на stderr (т. Е. Файл журнала).
Если я что-то вроде этого:
def updateResults(self):
try:
#code that updates the results
except:
#display error message box
Это будет ловить исключение, а не на распространение информации о журнале ошибок.
Есть ли способ показать пользователю сообщение, а затем продолжить пропаганду ошибки?
Будет ли это работать?
except, e:
#display error message box
raise e
Есть ли лучший способ для достижения моей цели?
Я определенно буду использовать этот метод для будущих проектов. Прямо сейчас py2exe выполняет переадресацию 'stderr', поэтому, если я не реорганизую свой код на наличие исключающих блоков вокруг * каждой функции, я получаю два файла журнала (пойманные и не обнаруженные исключения). – tgray
В принципе, преимущество реализации этого метода не стоит времени рефакторинга для * этого * проекта. – tgray
Имейте в виду (tgray), что вы хотите выделить свои пойманные/неперехваченные исключения. Схема протоколирования, описанная Ant, является лучшей, поскольку вы можете регистрироваться в файле или регистрироваться в базе данных или даже вносить в файл AND базу данных, и вам не нужно менять код в каждом месте. – DevinB