У меня есть пользовательские исключения в моем проекте django, которые выглядят так:
class CustomFooError(Exception):
def __init__(self, msg="Something went wrong with Foo."):
self.msg = msg
def __str__(self):
return repr(self.msg)
В различных точках моего кода я буду вызывать исключения вроде этого:
raise CustomFooError("Things are going badly")
Когда Django ловитэти ошибки, в режиме отладки я получаю стандартную красивую страницу трассировки стека в django.Но я никогда не вижу своих сообщений об ошибках - «Все идет плохо» никогда не появляется на странице ошибок отладки.
Кажется, они должны отображаться как Exception Value
на странице ошибок.Я прошёл через источник django достаточно далеко, чтобы выяснить, что это поле value
из sys.exc_info()
, которое последовательно кратко задокументировано как «[исключение] связанное значение или второй аргумент для поднятия, который всегда является экземпляром классаесли тип исключения является объектом класса. "К сожалению, я не знаю, что делать с этой информацией.
Так что мой вопрос: как мне писать и поднимать свои пользовательские исключения, чтобы получить больше полезных данных, которые будут отображаться в таких местах, как экран ошибок django