Пользовательская страница ошибки для кода 500 не отображается в колбе для ошибки sqlalchemy - PullRequest
0 голосов
/ 11 июля 2019

Я хочу иметь собственную страницу ошибок для внутренних ошибок.Точно знаю, я тестирую его, перезапуская службу базы данных и пытаясь загрузить страницу, прежде чем она снова подключится.Запросы возвращают OperationalError

Я отключил режим отладки, чтобы не получать трассировку стека, но вместо пользовательской страницы 500 я получаю текст по умолчанию на белом фоне.

IЯ не уверен, что это правильный способ связать ошибку sqlalchemy с пользовательской страницей 500.Если я не определю прослушиватель событий для sqlalchemy, обработчик ошибок фляги не будет вызван.

@db.event.listens_for(db.engine, "handle_error")
def handle_exception(context):
    internal_error(context.original_exception)

@app.errorhandler(500)
def internal_error(error):
    db.session.rollback()
    return render_template('500.html'), 500

Удаление события sqlalchemy или повторное возникновение ошибки также не работает.

127.0.0.1 - - [11/Jul/2019 17:29:04] "GET /products HTTP/1.1" 500 -
Error on request:
...stack strace...
sqlalchemy.exc.OperationalError: (psycopg2.errors.AdminShutdown) terminating connection due to administrator command
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

ОБНОВЛЕНИЕ: Теперь, когда я об этом.Я не думаю, что это имеет какое-либо отношение к sqlalchemy.Я попытался разделить на ноль, чтобы увидеть, получу ли я свою пользовательскую страницу, но происходит то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...