From f2996c2d9e98c739cb509ab44acf27b0759cafd9 Mon Sep 17 00:00:00 2001 From: GitHub Copilot Date: Sat, 24 Jan 2026 10:24:00 +0000 Subject: [PATCH] refactor: narrow WebSocket exception handling Replace bare Exception catch with specific exception types: - json.JSONDecodeError for invalid JSON - TypeError, KeyError, ValueError for malformed messages - OSError for I/O errors Addresses REFACTORING.md item about narrowing WebSocket error handling. --- src/textual_webterm/local_server.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/textual_webterm/local_server.py b/src/textual_webterm/local_server.py index b6b73bf..b81710b 100644 --- a/src/textual_webterm/local_server.py +++ b/src/textual_webterm/local_server.py @@ -381,8 +381,12 @@ class LocalServer: session_created = await self._dispatch_ws_message( envelope, route_key, ws, session_created ) - except Exception as e: - log.error("Error processing WebSocket message: %s", e) + except json.JSONDecodeError as e: + log.warning("Invalid JSON in WebSocket message: %s", e) + except (TypeError, KeyError, ValueError) as e: + log.warning("Malformed WebSocket message: %s", e) + except OSError as e: + log.error("I/O error processing WebSocket message: %s", e) elif msg.type == WSMsgType.ERROR: log.error("WebSocket connection error for route %s", route_key) break