diff --git a/aegisub/src/menu.cpp b/aegisub/src/menu.cpp index 192a240d0..938ecf97b 100644 --- a/aegisub/src/menu.cpp +++ b/aegisub/src/menu.cpp @@ -100,7 +100,14 @@ wxMenu* Menu::BuildMenu(std::string name, const json::Array& array, int submenu) std::string cmd_name = type == Menu::Submenu ? name_submenu : command.Value(); - cmd::Command *cmd = cmd::get(cmd_name); + cmd::Command *cmd; + try { + cmd = cmd::get(cmd_name); + } + catch (CommandNotFound const&) { + LOG_W("menu/command/not_found") << "Command '" << cmd_name << "' not found; skipping"; + continue; + } wxString display = cmd->StrMenu() + "\t" + hotkey::get_hotkey_str_first("Default", cmd_name); wxString descr = cmd->StrHelp(); diff --git a/aegisub/src/toolbar.cpp b/aegisub/src/toolbar.cpp index e0365eb5c..599372049 100644 --- a/aegisub/src/toolbar.cpp +++ b/aegisub/src/toolbar.cpp @@ -33,6 +33,7 @@ #endif #include +#include #include namespace { @@ -105,7 +106,14 @@ namespace { AddSeparator(); } else { - cmd::Command *command = cmd::get(command_name.Value()); + cmd::Command *command; + try { + command = cmd::get(command_name.Value()); + } + catch (CommandNotFound const&) { + LOG_W("toolbar/command/not_found") << "Command '" << command_name.Value() << "' not found; skipping"; + continue; + } wxBitmap const& bitmap = command->Icon(icon_size); // this hack is needed because ???