From 2419fedd19f4f4497dacbc8f39233d1b0ac7f4f9 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Sat, 6 Jun 2026 17:50:32 +0900 Subject: [PATCH] chore: format exceptions with type --- dzgui/api/servers.py | 5 ++++- dzgui/managers/connection.py | 3 +-- dzgui/util/format.py | 4 ++++ dzgui/views/components/filter_panel.py | 4 +++- dzgui/views/dialogs/boot.py | 4 ++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dzgui/api/servers.py b/dzgui/api/servers.py index fce937b..568cdf8 100644 --- a/dzgui/api/servers.py +++ b/dzgui/api/servers.py @@ -14,6 +14,7 @@ from typing import Any, Optional, TYPE_CHECKING, Union from dzgui.api.bm import map_id_to_record from dzgui.const.constants import APP_NAME, REQUEST_TIMEOUT from dzgui.const.endpoints import STEAM_SERVERS +from dzgui.util.format import format_exception from dzgui.util import strings import a2s @@ -273,7 +274,9 @@ def source_info_to_dict(ip: str, qport: int, info: "SourceInfo") -> dict[str, An return res except Exception as e: # TODO: generalized function - logger.critical(f"{type(e).__name__}: {e} ({ip}:{qport})") + msg = format_exception(e) + msg += f" ({ip}:{qport})" + logger.critical(msg) raise e diff --git a/dzgui/managers/connection.py b/dzgui/managers/connection.py index 9fefb74..7570dfd 100644 --- a/dzgui/managers/connection.py +++ b/dzgui/managers/connection.py @@ -238,8 +238,7 @@ class ConnectionManager: def query_modlist_and_present(self, record: Servers.Record) -> None: try: mods = self._query_modlist(record) - except Exception as e: - print(f"{type(e).__name__}: {e}") + except Exception: self.thread_man.set_cleanup_func( StoredFunc(self._server_timeout), destroy_first=True ) diff --git a/dzgui/util/format.py b/dzgui/util/format.py index 871e9a7..d5420cb 100644 --- a/dzgui/util/format.py +++ b/dzgui/util/format.py @@ -83,3 +83,7 @@ def format_player_count(model: Gtk.TreeModel | None, control: list) -> str: def embolden(text: str) -> str: return f"{text}" + + +def format_exception(e: Exception) -> str: + return f"{type(e).__name__}: {e}" diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index 7d7310e..c79ee0c 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -11,6 +11,7 @@ from dzgui.const.constants import ( ) from dzgui.const.enum import FilterMode from dzgui.model.servers import ServerModelManager +from dzgui.util.format import format_exception from dzgui.util.strings import all_maps from dzgui.views.components.maps_combo import MapsCombo from dzgui.views.components.labels import BoldLabel @@ -338,4 +339,5 @@ class FilterPanel(Gtk.Box): label = check.get_label() check.set_active(filters[label]) except Exception as e: - logger.warning(e) + msg = format_exception(e) + logger.warning(msg) diff --git a/dzgui/views/dialogs/boot.py b/dzgui/views/dialogs/boot.py index 974239b..4dc5821 100644 --- a/dzgui/views/dialogs/boot.py +++ b/dzgui/views/dialogs/boot.py @@ -14,6 +14,7 @@ from dzgui.init.update import check_updates from dzgui.const.constants import EXPAND, FILL from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager from dzgui.strings import preboot +from dzgui.util.format import format_exception from dzgui.util.strings import dialog_header from dzgui.util.symlink import rebuild_symlinks from dzgui.views.components.buttons import ClipboardButton @@ -175,8 +176,7 @@ class BootDialog(Gtk.Dialog): self.thread_man.set_cleanup_func(callback) except Exception as e: self.failed = True - # TODO: generic exception wrapper - self.exception = f"{type(e).__name__}: {e}" + self.exception = format_exception(e) callback = StoredFunc(self.update_status, Success.FAIL) self.thread_man.set_cleanup_func(callback)