一,代码:
自定义异常:
class ApiError(Exception):""""API接口异常错误"""messsage = ""# 默认错误码status_code = 400# 自定义一个return_code, 作为更细粒的错误代码def __init__(self, message, return_code=None, status_code=None, payload=None):Exception.__init__(self)self.message = messageself.return_code = return_codeif status_code is not None:self.status_code = status_codeself.payload = payload# 构造要返回的错误代码和错误信息的dictdef to_dict(self):rv = dict(self.payload or ())rv['return_code'] = self.return_coderv['message'] = self.messagereturn rv
调用:抛出异常
@photo.route("/upload/", methods=['GET'])
def photo_upload():raise ApiError('上传页面发生自定义异常',8001,500)
处理自定义异常:
@app.errorhandler(ApiError)
def handle_api_error(error):"""处理Api自定义错误码"""rv = error.to_dict()status_code = error.status_codemsg = "自定义错误:"+ rv['message']return failed_response(error.return_code,msg), error.status_code
二,运行效果:
