LINUX.ORG.RU

Все исключения всего собрать в одну кучку

 


0

1

Имеется софтинка на pygtk почти случайным образом меняемая в разные стороны. С модулями, классами и т.д.

Хочется «лёгким движением руки» повесить callback на ВСЕ исключения генерящие traceback-и где бы в коде это не приключилось, чтобы можно было показать пользователю какую-нибудь кнопку для отправки этого добра разработчикам.

Возможно ли это и если «да», то как?

★★★★★
except Exception, e

Надо воткнуть где-нибудь, где еще жив цикл обработки гуев.

Deleted
()
Ответ на: комментарий от true_admin

Я постоянно забываю синтаксис отлова исключений во всех языках, поэтому пошёл смотреть доки, и там была альтернатива между этим и запятой. В чем разница, в тройке вырезали что-нибудь?

Deleted
()
Ответ на: комментарий от Deleted

в тройке вырезали что-нибудь?

угу, чтобы народ не делал ошибок типа «except Exception1,Exception2».

true_admin ★★★★★
()
Ответ на: комментарий от tailgunner

Конечно где-то живо. Уверен, где-то и gcc-2.95 есть :). Но подавляющему большинству людей оно не нужно. Даже django от 2.5 отказалось.

true_admin ★★★★★
()

Это всё очччень здОрово... но куда воткнуть-то?

(И если уж на то пошло — что именно втыкать.)

frob ★★★★★
() автор топика
Ответ на: комментарий от frob

в самом начале всего выполнения кода перехватить нужные тебе вещи:

import traceback, io
magic_print_tb = traceback.print_tb
def magic(traceback, limit=None, file=None):
    f = io.StringIO()
    magic_print_tb(traceback, limit, f)
    # open('magic.file','w').write(f.getvalue())
    f.close()
traceback.print_tb = magic

anonymous
()
Ответ на: комментарий от Oxdeadbeef

Отлично! Спасибо!

В питоне тоже есть sys.excepthook.

frob ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не вижу как это можно было бы на самом деле сделать.

Проверил, что excepthook работает.

frob ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.