From 6a96f33ad2181a440c5ec165be353d9e69653225 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Tue, 25 Jul 2023 02:18:39 +0200 Subject: [PATCH] Core: trace error to player, if possible. (#2023) --- worlds/AutoWorld.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/worlds/AutoWorld.py b/worlds/AutoWorld.py index 763b450b..a74d88d1 100644 --- a/worlds/AutoWorld.py +++ b/worlds/AutoWorld.py @@ -98,7 +98,17 @@ class AutoLogicRegister(type): def call_single(multiworld: "MultiWorld", method_name: str, player: int, *args: Any) -> Any: method = getattr(multiworld.worlds[player], method_name) - return method(*args) + try: + ret = method(*args) + except Exception as e: + message = f"Exception in {method} for player {player}, named {multiworld.player_name[player]}." + if sys.version_info >= (3, 11, 0): + e.add_note(message) # PEP 678 + else: + logging.error(message) + raise e + else: + return ret def call_all(multiworld: "MultiWorld", method_name: str, *args: Any) -> None: