您当前的位置: 首页 >  flask

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Flask之异常处理

IT之一小佬 发布时间:2021-08-10 19:31:23 ,浏览量:0

异常处理 HTTP 异常主动抛出
  • abort 方法
    • 抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。
  • 参数:
    • code – HTTP的错误状态码
# abort(404)
abort(500)

抛出状态码的话,只能抛出 HTTP 协议的错误状态码

示例代码:

from flask import Flask, render_template, abort

app = Flask(__name__)


@app.route('/users/')
def index(user_id):
    if user_id < 5:
        abort(444)
    return render_template('index.html')


app.run()

运行效果:

【这儿abort写成404时,页面会报404的错误,但是服务器不会显示错误信息】 【这儿要写确定的状态码】

捕获错误
  • errorhandler 装饰器
    • 注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法
  • 参数:
    • code_or_exception – HTTP的错误状态码或指定异常
  • 例如统一处理状态码为500的错误给用户友好的提示:
@app.errorhandler(500)
def internal_server_error(e):
    return '服务器搬家了'

 示例代码:

from flask import Flask, render_template, abort

app = Flask(__name__)


@app.route('/users/')
def index(user_id):
    if user_id < 5:
        abort(500)
    return render_template('index.html')


@app.errorhandler(500)
def internal_server_error(e):
    print(e)
    return '服务器搬家了'


app.run()

运行效果:

  • 捕获指定异常
@app.errorhandler(ZeroDivisionError)
def zero_division_error(e):
    return '除数不能为0'

示例代码:

from flask import Flask, render_template, abort

app = Flask(__name__)


@app.route('/test')
def index():
    9 / 0
    return render_template('index.html')


@app.errorhandler(ZeroDivisionError)
def zero_division_error(e):
    print(e)
    return '除数不能为0'


app.run()

运行效果:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0401s