Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 13, 2012 20:16:48

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

поймать ошибку в скрипте и отправить по почте

привет

вот есть у меня скрипт. Хочу чтобы при возникновении ошибки в скрипте отправить эту ошибку по почте. Скажите как это реализовать? Мне надо не отдельно в какой то функции. А вообще в коде. Отправить почту я могу. А как реалмзовать метод отлова ошибки?

Отредактировано ilnur (Окт. 14, 2012 15:25:31)

Офлайн

#2 Окт. 13, 2012 21:07:45

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

поймать ошибку в скрипте и отправить по почте

try/except

Офлайн

#3 Окт. 14, 2012 11:28:34

Mozart
От:
Зарегистрирован: 2011-12-12
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

поймать ошибку в скрипте и отправить по почте

try: a ** b; print u"Сработало!"
except Exception as err: print u"Не сработало!"; senderrmsg(err) # Отправляем ошибку на почту



Отредактировано Mozart (Окт. 14, 2012 11:29:37)

Офлайн

#4 Окт. 14, 2012 11:39:35

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

поймать ошибку в скрипте и отправить по почте

Ему же вообще надо при возникновении ошибки в любом месте, try-except всюду не рассуешь. Думаю, тут просто надо создать класс с методом write, в котором переданный ему в параметре текст ошибки будет отсылаться на почту, и перенаправить туда sys.stderr

Офлайн

#5 Окт. 14, 2012 13:30:36

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  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)

ilnur, ты ногами текст набирал :-)? И посмотри, что такое декораторы.

..bw



Офлайн

#6 Окт. 14, 2012 15:24:44

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

поймать ошибку в скрипте и отправить по почте

dimy44
точно
попробую запустить скрипт через другой, через exec. а exec уже вложить в try/except итам уже отправить по почте.

bw
ilnur, ты ногами текст набирал :-)
извените за опечатки. писал со смрта. редактировать было лень

Офлайн

#7 Окт. 17, 2012 02:41:09

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

поймать ошибку в скрипте и отправить по почте

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version