From 915266cf6a495b5c1dd5479e3de191c44f493ab7 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Thu, 13 Jul 2017 18:55:35 -1000 Subject: [PATCH] Be more resilient in setWidgetError xxxxx TODO: More sensible error display here --- src/mcedit2/widgets/layout.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mcedit2/widgets/layout.py b/src/mcedit2/widgets/layout.py index 8f65d9cd..63d43b34 100644 --- a/src/mcedit2/widgets/layout.py +++ b/src/mcedit2/widgets/layout.py @@ -61,7 +61,16 @@ def setWidgetError(widget, exc, msg = "An error has occurred."): textArea.setReadOnly(True) message = msg + "\n" # Sometimes str(exc) returns non-ascii bytes - assume they are filenames? - message += str(exc).decode(sys.getfilesystemencoding(), errors='replace') + "\n\n" + try: + excmsg = unicode(exc) + except UnicodeError: + try: + excmsg = str(exc).decode(sys.getfilesystemencoding(), errors='replace') + except UnicodeError: + excmsg = unicode(type(exc)) + + + message += excmsg + "\n\n" message += traceback.format_exc() textArea.setText(message) layout.addWidget(textArea)