python异常处理可以捕获所有错误_Flask:自定义错误处理程序未捕获所有异常

我在应用程序中使用以下错误处理程序:def make_json_error(ex):

status_code = ex.code if isinstance(ex, HTTPException) else 500

description = str(ex.description) if isinstance(ex, HTTPException) else 'internal server error'

message = {'error': {'message': '{}: {}'.format(str(status_code), description)}}

response = jsonify(message)

response.status_code = status_code

return response

然后在创建烧瓶应用程序时使用:

^{pr2}$

奇怪的是,对于某些无效请求,它不会返回JSON格式的错误:$ curl 'http://127.0.0.1:5000/api/tickets?id=a' -H "Content-Type: application/json"

{

"error": {

"message": "400: Invalid id parameter values"

}

}

$ curl 'http://127.0.0.1:5000/api/tickets?id=a 1' -H "Content-Type: application/json"

/p>

"http://www.w3.org/TR/html4/strict.dtd">

Error response

Error response

Error code: 400

Message: Bad request syntax ('GET /api/tickets?id=a 1 HTTP/1.1').

Error code explanation: 400 - Bad request syntax or unsupported method.

注意第二个命令中查询字符串中的额外空格。你知道为什么这也不被当作400错误来处理,和第一个错误一样?据我所知,第二个URL甚至没有通过/tickets视图函数进行路由,所以我假设空格在Flask中以某种方式进行了特殊解释。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值