当前位置: 首页 > news >正文

flask捕获@app.errorhandler/@app.after_request全局异常总结

捕获处理全局异常的方法有两种:@app.errorhandler、@app.after_request

1、第一种的使用,需要将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_孤独王者¥-华为云开发者联盟

http://www.lryc.cn/news/188798.html

相关文章:

  • 智能晾衣架丨以科技解放双手
  • asp.net饭店订餐管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机设计定制
  • Pushgateway的场景使用
  • 时间范围配置(昨天,今天,本周,本月,本季度,本年)
  • PlantUML 绘图
  • spring boot自定义配置时在yml文件输入有提示
  • Linux:I/O 5种模型
  • 企业提升效率的秘密武器,推荐J2L3x聊天软件!
  • Android Termux安装MySQL,并使用cpolar实现公网安全远程连接[内网穿透]
  • 如何有效管理公司分配给员工的个人微信,实现聚合聊天管理?
  • 【HTML5】语义化标签记录
  • 数据结构———— 堆
  • 如何选择专业的游戏开发公司?
  • Unity基础课程之物理引擎3-碰撞检测案例-吃金币并加分显在UI文本框上
  • DAPLink V2 STLink V2 JLink V9.7 串口四合一仿真调试下载器
  • 使用PyTorch处理多维特征输入的完美指南
  • 萝卜刀玩具上架亚马逊CPC认证测试标准
  • 阶段六-Day03-MyBatis
  • 探索RPA流程自动化在不同行业的应用案例
  • 解决gpedit.msc命令无法打开的问题
  • 一大突破!清华大学研制出首颗忆阻器存算一体芯片
  • JUC的线程池架构
  • PostgreSQL limit 语法
  • CUDA C编程权威指南:2.1-CUDA编程模型
  • 两条记录合并成一条记录
  • vue3 + typescript + vite + naive ui + tailwindcss + jsx 仿苹果桌面系统
  • 揭秘,用软件一秒识别纸质表格数字,找到你想要的一串数字
  • 解析图片文件格式
  • 新的“HTTP/2 快速重置”零日攻击打破了 DDoS 记录
  • 现代化战机之路:美国空军U-2侦察机基于Jenkins和k8s的CI/CD架构演进