Files
CN2021/httplib/exceptions.py
2021-03-25 12:16:40 +01:00

69 lines
1.5 KiB
Python

class HTTPException(Exception):
""" Base class for HTTP exceptions """
class InvalidResponse(HTTPException):
""" Response message cannot be parsed """
def __init(self, message):
self.message = message
class InvalidStatusLine(HTTPException):
""" Response status line is invalid """
def __init(self, line):
self.line = line
class UnsupportedEncoding(HTTPException):
""" Reponse Encoding not support """
def __init(self, enc_type, encoding):
self.enc_type = enc_type
self.encoding = encoding
class IncompleteResponse(HTTPException):
def __init(self, cause):
self.cause = cause
class HTTPServerException(Exception):
""" Base class for HTTP Server exceptions """
status_code: str
message: str
class BadRequest(HTTPServerException):
""" Malformed HTTP request"""
status_code = 400
message = "Bad Request"
class MethodNotAllowed(HTTPServerException):
""" Method is not allowed """
status_code = 405
message = "Method Not Allowed"
def __init(self, allowed_methods):
self.allowed_methods = allowed_methods
class InternalServerError(HTTPServerException):
""" Internal Server Error """
status_code = 500
message = "Internal Server Error"
class NotImplemented(HTTPServerException):
""" Functionality not implemented """
status_code = 501
message = "Not Implemented"
class NotFound(HTTPServerException):
""" Resource not found """
status_code = 404
message = "Not Found"