diff options
| author | UltraQbik <no1skill@yandex.ru> | 2024-08-20 18:53:20 +0300 |
|---|---|---|
| committer | UltraQbik <no1skill@yandex.ru> | 2024-08-20 18:53:20 +0300 |
| commit | 66b129b33d4348c97b4c6817df55fc27cbb7cb3d (patch) | |
| tree | 4e7c619d9f74c98b09aae20deb5d29eebfbef406 /main.py | |
| parent | 849fd5fedc9cddb051b6b29f2488f595afec0ac8 (diff) | |
| download | httpy-66b129b33d4348c97b4c6817df55fc27cbb7cb3d.tar.gz httpy-66b129b33d4348c97b4c6817df55fc27cbb7cb3d.zip | |
Exception handling (kind of)
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/main.py b/main.py index 636c5f0..6f824da 100644 --- a/main.py +++ b/main.py @@ -143,14 +143,21 @@ class HTTPServer: request: Request = Request.create(raw_request) # handle requests - match request.type: - case "GET": - await self.handle_get_request(client, request) - case _: - pass + try: + match request.type: + case "GET": + await self.handle_get_request(client, request) + case _: + break + + # break on exception + except Exception as e: + print(e) + break - self._close_client(client) + # break the connection break + self._close_client(client) @staticmethod async def handle_get_request(client: socket.socket, request: Request): @@ -179,16 +186,20 @@ class HTTPServer: :param headers: headers to include """ + # if data was not given if data is None: data = bytes() + # if headers were not given if headers is None: headers = dict() + # format headers byte_header = bytearray() for key, value in headers.items(): byte_header += f"{key}: {value}\r\n".encode("ascii") + # send response to the client client.sendall( b'HTTP/1.1 ' + get_response_code(response) + @@ -240,7 +251,7 @@ class HTTPServer: def main(): - server = HTTPServer(port=13701) + server = HTTPServer(port=13700) server.start() |