@app.errorhandler
装饰器是 Flask 中的一个装饰器,用于注册一个错误处理函数。这个函数会在应用程序抛出指定类型的异常时执行,可以用来自定义错误页面或返回错误信息。
在这个示例中,我们定义了一个 /users/<int:user_id>
的路由,用于返回指定 ID 的用户信息。如果请求的用户不存在,我们会抛出一个 ValueError 异常,并返回一个 HTTP 404 响应。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/users/<int:user_id>')
def get_user(user_id):
# get user from database
user = None
if not user:
raise ValueError('User not found')
return jsonify(user)
@app.errorhandler(ValueError)
def handle_value_error(error):
return jsonify({'message': str(error)}), 404
if __name__ == '__main__':
app.run()
为了处理这个异常,我们使用 @app.errorhandler
装饰器注册了一个名为 handle_value_error
的函数。这个函数接受一个异常对象作为参数,并返回一个 JSON 格式的响应,其中包含了错误信息。
需要注意的是,@app.errorhandler
装饰器的参数是一个异常类型。在注册时,我们需要指定希望处理的异常类型。