Форум сайта python.su
22
привет
вот есть у меня скрипт. Хочу чтобы при возникновении ошибки в скрипте отправить эту ошибку по почте. Скажите как это реализовать? Мне надо не отдельно в какой то функции. А вообще в коде. Отправить почту я могу. А как реалмзовать метод отлова ошибки?
Отредактировано ilnur (Окт. 14, 2012 15:25:31)
Офлайн
18
try/except
Офлайн
0
try: a ** b; print u"Сработало!"
except Exception as err: print u"Не сработало!"; senderrmsg(err) # Отправляем ошибку на почту
Отредактировано Mozart (Окт. 14, 2012 11:29:37)
Офлайн
Ему же вообще надо при возникновении ошибки в любом месте, try-except всюду не рассуешь. Думаю, тут просто надо создать класс с методом write, в котором переданный ему в параметре текст ошибки будет отсылаться на почту, и перенаправить туда sys.stderr
Офлайн
20
dimy44 :-)
# ... def main(argv=None): func1() func2() if cond1(): func3() if __name__ == '__main__': try: main(sys.argv) except KeyboardInterrupt: pass except Exception: excinfo = sys.exc_info() sendErrorReport(*excinfo) traceback.print_exception(*excinfo)
Офлайн
22
dimy44
точно
попробую запустить скрипт через другой, через exec. а exec уже вложить в try/except итам уже отправить по почте.
bwизвените за опечатки. писал со смрта. редактировать было лень
ilnur, ты ногами текст набирал :-)
Офлайн
221
ilnur
ilnurИ вам не кажется это решение несколько не правильным?
попробую запустить скрипт через другой, через exec. а exec уже вложить в try/except итам уже отправить по почте.
class Foo(object): def run(self): # Code here if __name__=='__main__': try: foo=Foo() foo.run() except Exception: # send error
Офлайн