From 03428bcf38ad4ada0eb957aec0d1f1c7e78cd1db Mon Sep 17 00:00:00 2001 From: Vasily Date: Fri, 15 Jan 2016 16:58:40 +0300 Subject: [PATCH 1/2] Handle more built-in exceptions that are not derived from Exception in WebSocketApp.run_forever() --- websocket/_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/websocket/_app.py b/websocket/_app.py index f258b65..46bc5c1 100644 --- a/websocket/_app.py +++ b/websocket/_app.py @@ -210,7 +210,7 @@ class WebSocketApp(object): data = data.decode("utf-8") self._callback(self.on_data, data, frame.opcode, True) self._callback(self.on_message, data) - except Exception as e: + except (Exception, KeyboardInterrupt, SystemExit) as e: self._callback(self.on_error, e) finally: if thread: From 1b9bd394920c84662effb74d0fee9d75c3067556 Mon Sep 17 00:00:00 2001 From: Vasily Date: Mon, 18 Jan 2016 17:11:07 +0300 Subject: [PATCH 2/2] Propagate SystemExit exception further --- websocket/_app.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/websocket/_app.py b/websocket/_app.py index 46bc5c1..680bfac 100644 --- a/websocket/_app.py +++ b/websocket/_app.py @@ -212,6 +212,9 @@ class WebSocketApp(object): self._callback(self.on_message, data) except (Exception, KeyboardInterrupt, SystemExit) as e: self._callback(self.on_error, e) + if isinstance(e, SystemExit): + # propagate SystemExit further + raise finally: if thread: event.set()