天天看點

Flask接口服務處理全局異常

通過 errorhandler 處理全局異常,統一傳回json格式的資料

# -*- coding: utf-8 -*-
from flask import Flask, jsonify

app = Flask(__name__)


@app.route("/getInfo")
def get_info():
    """擷取使用者資訊
    """
    data = {
        "code": 0,
        "msg": "ok",
        "data": {
            "name": "Tom",
        }
    }

    # l = 1/0  # 觸發異常
    return jsonify(data)


@app.errorhandler(Exception)
def error_handler(e):
    """
    全局異常捕獲

    """
    data = {
        "code": -1,
        "msg": str(e),
        "data": None
    }

    return jsonify(data)


if __name__ == '__main__':
    app.run(debug=True)
      

正确傳回

{
    code: 0,
    msg: "ok"
    data: {
        name: "Tom"
    }
}      

程式報錯傳回

{
    code: -1,
    data: null,
    msg: "division by zero"
}