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()

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM