在Flask中处理自定义异常时出错(Python)

尼克

在我的路线Flask文件中import exception.py

@app.errorhandler(exception.BadRequest)
def BadRequest(e):
    abort(400)

@app.errorhandler(exception.Unauthorized)
def Unauthorized(e):
    abort(401)

@app.errorhandler(exception.Forbidden)
def Forbidden(e):
    abort(404)


@app.route("/", methods=['GET'])
def index():
    if(request.args.get('dev') == 'windyEw336'):
        return 'ok', 200
    else:
        raise exception.Unauthorized('Key is not valid!')

exception.py我有:

class Error(Exception):
    def __init__(self, *args, **kwargs):
        pass

class BadRequest(Error):
    pass

class Unauthorized(Error):
    pass

class Forbidden(Error):
    pass

并得到以下错误。

Mar 26 11:04:34  gunicorn[20507]: [2020-03-26 11:04:34 +0000] [20532] [ERROR] Error handling request /?dev=windyEw336.
Mar 26 11:04:34  gunicorn[20507]: Traceback (most recent call last):
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
Mar 26 11:04:34  gunicorn[20507]:     rv = self.dispatch_request()
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
Mar 26 11:04:34  gunicorn[20507]:     return self.view_functions[rule.endpoint](**req.view_args)
Mar 26 11:04:34  gunicorn[20507]:   File "/uni/erp/erp.py", line 34, in index
Mar 26 11:04:34  gunicorn[20507]:     raise exception.Unauthorized('Key is not valid!')
Mar 26 11:04:34  gunicorn[20507]: exception.Unauthorized: Key is not valid!
Mar 26 11:04:34  gunicorn[20507]: During handling of the above exception, another exception occurred:
Mar 26 11:04:34  gunicorn[20507]: Traceback (most recent call last):
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 134, in handle
Mar 26 11:04:34  gunicorn[20507]:     self.handle_request(listener, req, client, addr)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 175, in handle_request
Mar 26 11:04:34  gunicorn[20507]:     respiter = self.wsgi(environ, resp.start_response)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 2463, in __call__
Mar 26 11:04:34  gunicorn[20507]:     return self.wsgi_app(environ, start_response)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 2449, in wsgi_app
Mar 26 11:04:34  gunicorn[20507]:     response = self.handle_exception(e)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 1866, in handle_exception
Mar 26 11:04:34  gunicorn[20507]:     reraise(exc_type, exc_value, tb)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
Mar 26 11:04:34  gunicorn[20507]:     raise value
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 2446, in wsgi_app
Mar 26 11:04:34  gunicorn[20507]:     response = self.full_dispatch_request()
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 1951, in full_dispatch_request
Mar 26 11:04:34  gunicorn[20507]:     rv = self.handle_user_exception(e)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
Mar 26 11:04:34  gunicorn[20507]:     return handler(e)
Mar 26 11:04:34  gunicorn[20507]:   File "/uni/erp/erp.py", line 22, in Unauthorized
Mar 26 11:04:34  gunicorn[20507]:     abort(401)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/werkzeug/exceptions.py", line 822, in abort
Mar 26 11:04:34  gunicorn[20507]:     return _aborter(status, *args, **kwargs)
Mar 26 11:04:34  gunicorn[20507]:   File "/pyenv/lib/python3.8/site-packages/werkzeug/exceptions.py", line 807, in __call__
Mar 26 11:04:34  gunicorn[20507]:     raise self.mapping[code](*args, **kwargs)
Mar 26 11:04:34  gunicorn[20507]: werkzeug.exceptions.Unauthorized: 401 Unauthorized: The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.

我究竟做错了什么?

后座

您正在调用abort(401)将处理abort(401)

@app.errorhandler(exception.Unauthorized) 应该处理未经授权的异常,但是您要通过调用抛出新的未经授权的异常 abort(401)

我建议在此页面上阅读有关烧瓶中的错误处理程序的信息:https : //flask.palletsprojects.com/en/1.1.x/patterns/errorpages/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Flask中为未处理的异常创建自定义异常处理程序

来自分类Dev

在Flask中为未处理的异常创建自定义异常处理程序

来自分类Dev

打印自定义错误消息时异常处理中的“未定义”

来自分类Dev

自定义异常处理

来自分类Dev

在Java中定义自定义异常处理程序?

来自分类Dev

Python中的自定义异常

来自分类Dev

Flask中的自定义中止映射/异常

来自分类Dev

设计器中的自定义控件未处理异常

来自分类Dev

在JAX-WS中处理异常自定义

来自分类Dev

Laravel - 在自定义处理程序中捕获异常

来自分类Dev

处理自定义代码中的 NoneType 异常

来自分类Dev

在Grails中创建自定义标签库时出错

来自分类Dev

在自定义UINavigationController类中创建UINavigationBar时出错

来自分类Dev

在Hyperledger Fabric中启动自定义网络时出错

来自分类Dev

在Hibernate Envers中添加自定义修订时出错

来自分类Dev

在Kartik Dynagrid中添加自定义操作时出错

来自分类Dev

在 tensorflow 中创建自定义层时出错

来自分类Dev

在android中添加自定义样式时出错

来自分类Dev

Rest Template自定义异常处理

来自分类Dev

处理任务异常-自定义TaskScheduler

来自分类Dev

PLSQL处理自定义异常

来自分类Dev

Rest Template自定义异常处理

来自分类Dev

在模块中引发异常时,自定义Python模块无法重新执行

来自分类Dev

调用自定义分析器时在 python 中抛出的奇怪异常

来自分类Dev

在 Magento 1.9 中为自定义模块创建自定义表时出错

来自分类Dev

如何调试具有自定义异常处理程序的Flask应用程序?

来自分类Dev

在 python 3.6 中处理自定义编码时遇到类型错误

来自分类Dev

Python 3.4中的自定义异常代码和消息

来自分类Dev

加载自定义UserControl时出错

Related 相关文章

  1. 1

    在Flask中为未处理的异常创建自定义异常处理程序

  2. 2

    在Flask中为未处理的异常创建自定义异常处理程序

  3. 3

    打印自定义错误消息时异常处理中的“未定义”

  4. 4

    自定义异常处理

  5. 5

    在Java中定义自定义异常处理程序?

  6. 6

    Python中的自定义异常

  7. 7

    Flask中的自定义中止映射/异常

  8. 8

    设计器中的自定义控件未处理异常

  9. 9

    在JAX-WS中处理异常自定义

  10. 10

    Laravel - 在自定义处理程序中捕获异常

  11. 11

    处理自定义代码中的 NoneType 异常

  12. 12

    在Grails中创建自定义标签库时出错

  13. 13

    在自定义UINavigationController类中创建UINavigationBar时出错

  14. 14

    在Hyperledger Fabric中启动自定义网络时出错

  15. 15

    在Hibernate Envers中添加自定义修订时出错

  16. 16

    在Kartik Dynagrid中添加自定义操作时出错

  17. 17

    在 tensorflow 中创建自定义层时出错

  18. 18

    在android中添加自定义样式时出错

  19. 19

    Rest Template自定义异常处理

  20. 20

    处理任务异常-自定义TaskScheduler

  21. 21

    PLSQL处理自定义异常

  22. 22

    Rest Template自定义异常处理

  23. 23

    在模块中引发异常时,自定义Python模块无法重新执行

  24. 24

    调用自定义分析器时在 python 中抛出的奇怪异常

  25. 25

    在 Magento 1.9 中为自定义模块创建自定义表时出错

  26. 26

    如何调试具有自定义异常处理程序的Flask应用程序?

  27. 27

    在 python 3.6 中处理自定义编码时遇到类型错误

  28. 28

    Python 3.4中的自定义异常代码和消息

  29. 29

    加载自定义UserControl时出错

热门标签

归档