avatar

目录
flask-restful与异常处理

flask-restful中abort触发的异常不能被注册在蓝图或者应用上的错误处理器所捕获,而可以被API类自定义的errors参数所捕获。且flask-restful中触发的自定义异常可以被蓝图上的错误处理器所捕获。但是在蓝图视图函数中用abort触发的异常却可以被注册的错误处理器捕获。abort(404)实际上是raise NotFound异常。但是!!!!!!!实际的404错误并不是触发NotFound异常!!!!所以!!!在蓝图上注册的404错误处理器无法处理abort触发的404错误,因为abort实际上是触发NotFound异常!!!所以应该注册一个处理NotFound异常的错误处理器!!!!!

以上为谬论,abort,NotFound,和_register_error_handler是在同一个文件下的,在蓝图上给404注册错误处理器实际上也是给NotFound注册一个错误处理器也就是abort(404)所触发的异常,但是经研究发现abort触发的所有错误都会有如上bug,在restful路由下手动触发NotFound等错误也会触发bug,也就是说大概不是abort的锅,而是所有的werkzeug.exceptions中的异常都会触发该bug

文章作者: 3927o
文章链接: http://yoursite.com/flask-restful%E4%B8%8E%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lin's document

评论