flask中的错误处理器

flask中的错误处理器

对abort的一种补充

优化状态码展示的效果

1
2
3
4
5
from flask import render_template

@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404

转换掉应用中所有的异常

优化异常捕获的效果
下面的代码即是展示了错误捕获的转换,当该错误有自定义的时候,那么直接转换成自定义的这一部分;如果不存在自定义的类型,那么直接就使用通用的一个异常

1
2
3
4
5
6
7
8
9
10
from flask import jsonify

from .errors import BaseExc


@site.errorhandler(Exception)
def coupon_api_exception(error):
if isinstance(error, BaseExc):
return jsonify({'status': 'error', 'message': error.message}), error.status_code
return jsonify({'status': 'error', 'message': '系统异常'}), 500
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 自定义异常
class BaseExc(Exception):
message = '系统异常'
status_code = 500

def __init__(self, msg=None):
self.message = msg or self.message

def __str__(self):
return self.message


class SystemException(BaseExc):
message = '系统异常'
status_code = 500


class TimestampOutException(BaseExc):
message = '时间戳超过有效范围'
status_code = 500