郑州做网站好的公司,宣传品牌网站建设,长沙百度推广排名优化,中国加工网招聘信息捕获处理全局异常的方法有两种#xff1a;app.errorhandler、app.after_request1、第一种的使用#xff0c;需要将flask的debug开关打开才能生效#xff08;自动捕获异常#xff09;#xff0c;在config里面将DEBUG TRUE就可以#xff08;默认是False#xff09;。
但是…捕获处理全局异常的方法有两种app.errorhandler、app.after_request1、第一种的使用需要将flask的debug开关打开才能生效自动捕获异常在config里面将DEBUG TRUE就可以默认是False。
但是debug模式是万万不建议在生产中开启的因此这里这个用法就有所限制了。
app.errorhandler(Exception)
def handle_error(e):logging.error(error: {0} traceback:{1}.format(e, traceback.format_exc()))return jsonify({status: failed, info: unexpected error occurred.})
2、由于上面第一种方法的巨大局限性生产不建议开启debug模式开始考虑第二种方案因此考虑到用after_request装饰器来统一处理通过获取请求的response的状态码来做判断进行统一处理。需要注意的是用after_request这种方法需要将debug模式关闭要不flask自动捕获了异常装饰器就捕获不到了。app.after_request
def after_request(response):if response.status_code ! 200:return make_response(jsonify({msg: unexpected error occurred.}), 200)return response
3、总结app.errorhandler和app.after_request是不能一起使用的一个对应开发模式一个适合生产模式。 debug用法
python flask框架 debug功能-CSDN博客
文章参考链接
flask捕获app.errorhandler/app.after_request全局异常总结_flask_孤独王者-华为云开发者联盟