[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/kenny67/kbengine-httpserver/master/httpserver/exceptions.py [Back]  [Original]

# -*- coding: utf-8 -*-
"""
FileName:   exceptions
Author:     Tao Hao
@contact:   taohaohust@outlook.com
Created time:   2019/5/30

Description:

Changelog:
"""


def add_status_code(code):
    def class_decorator(cls):
        cls.status_code = code
        return cls

    return class_decorator


class BaseException_(Exception):

    def __init__(self, message, status_code=None):
        super(BaseException_, self).__init__(message)
        self.status_code = None
        if status_code is not None:
            self.status_code = status_code


@add_status_code(400)
class InvalidUsage(BaseException_):
    pass


class UriDuplicated(BaseException_):
    pass


@add_status_code(405)
class MethodNotAllowed(BaseException_):
    def __init__(self, method):
        msg = "method: %s not allowed" % method
        super(MethodNotAllowed, self).__init__(msg)


@add_status_code(404)
class NotFound(BaseException_):
    def __init__(self, uri):
        msg = "uri: %s not found" % uri
        super(NotFound, self).__init__(msg)


if __name__ == "__main__":
    e = InvalidUsage("test")


Web Proxy Viewer  |  New URL  |  Original Page