From b8a2c1b871f646eb4416232b192450f4ebd62a19 Mon Sep 17 00:00:00 2001 From: Brikwerk Date: Wed, 2 Sep 2020 21:28:16 -0700 Subject: [PATCH] Added better error handling/printing --- nxbt/controller/server.py | 5 +++-- nxbt/tui.py | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/nxbt/controller/server.py b/nxbt/controller/server.py index 0ffbf79..3adedc7 100644 --- a/nxbt/controller/server.py +++ b/nxbt/controller/server.py @@ -4,6 +4,7 @@ import os import time import queue import logging +import traceback from .controller import Controller, ControllerTypes from ..bluez import BlueZ @@ -92,9 +93,9 @@ class ControllerServer(): except KeyboardInterrupt: pass - except Exception as e: + except Exception: self.state["state"] = "crashed" - self.state["errors"] = str(e) + self.state["errors"] = traceback.format_exc() return self.state def mainloop(self, itr, ctrl): diff --git a/nxbt/tui.py b/nxbt/tui.py index 054428d..c00fb37 100644 --- a/nxbt/tui.py +++ b/nxbt/tui.py @@ -320,6 +320,7 @@ class InputTUI(): state = None spinner = LoadingSpinner() + errors = None try: with term.cbreak(), term.keypad(), term.location(), term.hidden_cursor(): print(term.home + term.clear) @@ -346,6 +347,9 @@ class InputTUI(): loading_text = "Reconnecting to Nintendo Switch" elif state == "connected": loading_text = "Connected!" + elif state == "crashed": + errors = self.nx.state[self.controller_index]["errors"] + exit(1) self.render_start_screen(term, loading_text) print(term.move_y((term.height // 2) + 6)) @@ -369,6 +373,9 @@ class InputTUI(): pass finally: print(term.clear()) + if errors: + print("The TUI encountered the following errors:") + print(errors) def remote_input_loop(self, term):