上一个文章 自定义APIException
使用时或有一些异常捕捉不到
这里进行优化
在api_error.py 文件中
添加新的异常
from exceptions import APIException
class Success(APIException):
code = 400
msg = ''
error_code = 0
class ServerError(APIException):
code = 500
msg = 'Sorry, there was an unexpected error(*^v^*)'
error_code = 5001
在run.py 文件中
from flask import Flask
from exceptions import APIException
from api_error import Success,ServerError
app = Flask(__name__)
# 返回成功的异常
@app.route('/'):
def index()
return Success()
#浏览器输出
'''
{
"error_code" : 0,
"msg" : "success"
}
'''
# 其他异常
@app.route('/'):
def index()
status = False
if not status:
raise ServerError()
return Success()
'''
{
"error_code" : 5001,
"msg" : "Sorry, there was an unexpected error(*^v^*)"
}
'''
# 添加代码
@app.errorhandler
def flask_api_error(e):
'''
使用方法分两种
方式一 @app.errorhandler 添加到 函数上
方式二 app.register_error_handler(flask_api_error)
'''
if isinstance(e, APIException):
return e
if isinstance(e, HTTPException):
code = e.code
msg = e.description
error_code = 1004
return APIException(msg, code, error_code)
else:
return ServerError()
if __name__ == '__main__':
app.run()
关注公众号学习更多技术