Exception是不是不能继承,或者继承后无法调用了?

来源:5-5 全局异常处理

老卢123123

2018-07-26

from werkzeug.exceptions import HTTPException

class BaseError(Exception):

    default_status_code = 200

    LEVEL_DEBUG = 0
    LEVEL_INFO = 1
    LEVEL_WARN = 2
    LEVEL_ERROR = 3

    def __init__(self, message, status_code=None, extras=None, parent_error=None):
        self._message = message
        self._code = status_code
        self.extras = extras
        self.parent_error = parent_error
        self.level = BaseError.LEVEL_DEBUG

    @property
    def status_code(self):
        if not self._code:
            return BaseError.default_status_code
        return self._code

    def to_dict(self):
        rv = {
            'msg': self._message,
            'code': self.status_code,
            'success': False
        }
        return rv


# 几种异常类型
class ValidationError(BaseError):
    def __init__(self, message, extras=None):
        super(ValidationError, self).__init__(message=message, extras=extras)
        self.level = BaseError.LEVEL_INFO


class NotFoundError(BaseError):
    def __init__(self, message, extras=None):
        super(NotFoundError, self).__init__(message=message, extras=extras)
        self.level = BaseError.LEVEL_WARN


class FormError(BaseError):
    def __init__(self, form):
        message = form.get_validate_error()
        super(FormError, self).__init__(message, extras=form.data)
        self.level = BaseError.LEVEL_INFO


class OrmError(BaseError):
    def __init__(self, message, status_code=None, extras=None, parent_error=None):
        super(OrmError, self).__init__(message, status_code, extras, parent_error)
        self.level = BaseError.LEVEL_ERROR

老师帮忙看一下,上面这个BaseError继承Exception 是不是无效的?


因为在app调用了好像没有执行

@app.errorhandler(BaseError)
def framework_error(e):


写回答

1回答

7七月

2018-07-27

flask版本多少?

0
2
7七月
回复
老卢123123
1.0 版本这里应该是可以的,这个只能看看源码下面是怎么处理的了。1.0以下的版本这里是有问题的
2018-07-28
共2条回复

Python Flask高级编程之RESTFul API前后端分离精讲

RESTFul+权限管理+token令牌+扩展flask=提升编程思维

2052 学习 · 359 问题

查看课程