Flask框架-全局异常处理
全局异常处理
import logging
from flask import Flask, jsonify
app = Flask(__name__)
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s",
filename='test.log'
)
class ApiException(Exception):
code = 0
msg = "错误"
def __init__(self, code=None, msg=None):
if code:
self.code = code
if msg:
self.msg = msg
def to_result(self):
return {'code': self.code, 'msg': self.msg}
class illegalUserErr(ApiException):
code = 1000
msg = '非法的登陆用户'
class NotFound(ApiException):
code = 1001
msg = '资源未找到'
class ParameterErr(ApiException):
code = 1002
msg = '无效的参数'
class TokenExpireErr(ApiException):
code = 1003
msg = "token过期"
@app.route("/")
def index():
raise ApiException('error')
return 'ok'
@app.errorhandler(ApiException)
def handler_api_err(err):
logging.error(err)
return err.to_result()
@app.errorhandler(Exception)
def handler_err(err):
logging.error(err)
err = ApiException()
return err.to_result()
@app.errorhandler(404)
def handle_404(err):
err = ParameterErr('api接口不存在')
return err.to_result()
if __name__ == "__main__":
app.run()
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」