Просто используйте декоратор @error(code)
для определения страницы обработки ошибок, например:
from bottle import run, error, route
@error(500)
def handle_500_error(code):
# add mail send code here
return "Error message here"
@route("/test_500")
def cause_error():
raise Exception
run()
Просто перейдите к /test_500
, чтобы увидеть его в действии
Конечно, вы можетеиспользуйте шаблон для страницы ошибок, как и для любой другой страницы.Я не уверен, есть ли способ получить страницу ошибки встроенной бутылки при наличии обработчика ошибок.
Редактировать:
Очевидно, если вы используете последнюю версию Bottle v0.8функция, к которой вы применяете декоратор @error
, получает в качестве параметра не код ошибки, а объект bottle.HTTPError
, который содержит исключение и трассировку.
В качестве альтернативы выможно настроить Bottle на обработку не исключений, установив bottle.app().catchall
в False
, как описано здесь , а затем использовать соответствующее промежуточное программное обеспечение WSGI для их обработки и отправки электронной почты (например, что-то вроде this * 1023).*).