Django: ловить все ошибки и отображать тип ошибки и сообщения - PullRequest
9 голосов
/ 17 октября 2011

Я пытаюсь сделать общий обработчик ошибок, что-то вроде "когда другие" в Oracle.Все примеры, которые я могу найти, включают обнаружение определенной ожидаемой ошибки.

Try:
    some_function()
Except: #I don't know what error I'm getting
    show_me_error(type_of_error_and_message)

Ответы [ 4 ]

33 голосов
/ 17 октября 2011
try:
    1/0
except Exception as e:
    print '%s (%s)' % (e.message, type(e))

>>> 
integer division or modulo by zero (<type 'exceptions.ZeroDivisionError'>)

Это очень хорошо задокументировано .

Но, может быть, вам просто нужно Часовой ?

2 голосов
/ 10 января 2019

Чтобы напечатать исключение с помощью Python 3, вам нужно использовать type(e). Пример ниже:

try:
    1/0
except Exception as e:
    print(type(e))

>>> <class 'ZeroDivisionError'>

И тогда вы можете поймать исключение с помощью:

try:
    1/0
except ZeroDivisionError:
    print('Cannot divide by 0')
except Exception as e:
    print(type(e))

>>> Cannot divide by 0
1 голос
/ 14 декабря 2018
import traceback

try:
    some_function()
except Exception as e:
    trace_back = traceback.format_exc()
    message = str(e)+ " " + str(trace_back)
    print message
0 голосов
/ 23 сентября 2018

Чтобы напечатать исключение в Python 3:

try:
    # your code
except Exception as e:
    print(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...