Python功能点实现:绑定异常与异常处理

字数 65阅读 20

关键词:Python | 日志 | 异常

将自定义异常类型、自定义状态代码、日志级别进行绑定。之后就可以根据不同的状态代码、日志级别,进行不同的处理。

from enum import Enum, unique

@unique
class ErrorCode(Enum):
    """ Status Code for Exceptions  """
    SUCCESS                 = 200
    EMPTY_CONTENT_EXCEPTION = 400
    ERROR                   = 500
    EXTERNAL_API_EXCEPTION  = 501
    DATABASE_EXCEPTION      = 502

class AttributeMissingException(Exception):
    code      = ErrorCode.SUCCESS
    log_level = 'warning'

class EmptyContentException(Exception):
    code      = ErrorCode.EMPTY_CONTENT_EXCEPTION
    log_level = 'warning'

class ExternalAPIException(Exception):
    code      = ErrorCode.EXTERNAL_API_EXCEPTION
    log_level = 'error'

class DatabaseException(Exception):
    code      = ErrorCode.DATABASE_EXCEPTION
    log_level = 'error'

TRACKED_EXCEPTIONS = [
    AttributeMissingException, EmptyContentException, AppConfigError,
    ExternalAPIException, DatabaseException
] # if not tracked, return ErrorCode.ERROR (500)