diff --git a/Generate.py b/Generate.py index 8c649d76..d215f39d 100644 --- a/Generate.py +++ b/Generate.py @@ -353,7 +353,7 @@ def roll_meta_option(option_key, game: str, category_dict: Dict) -> Any: if options[option_key].supports_weighting: return get_choice(option_key, category_dict) return category_dict[option_key] - raise Exception(f"Error generating meta option {option_key} for {game}.") + raise Options.OptionError(f"Error generating meta option {option_key} for {game}.") def roll_linked_options(weights: dict) -> dict: @@ -417,7 +417,7 @@ def handle_option(ret: argparse.Namespace, game_weights: dict, option_key: str, player_option = option.from_any(get_choice(option_key, game_weights)) setattr(ret, option_key, player_option) except Exception as e: - raise Exception(f"Error generating option {option_key} in {ret.game}") from e + raise Options.OptionError(f"Error generating option {option_key} in {ret.game}") from e else: player_option.verify(AutoWorldRegister.world_types[ret.game], ret.name, plando_options) else: diff --git a/Options.py b/Options.py index fc633589..1eb0afee 100644 --- a/Options.py +++ b/Options.py @@ -21,6 +21,10 @@ if typing.TYPE_CHECKING: import pathlib +class OptionError(ValueError): + pass + + class Visibility(enum.IntFlag): none = 0b0000 template = 0b0001