diff --git a/src/data/keyword.cpp b/src/data/keyword.cpp index f1d01cf2..50e2fd7d 100644 --- a/src/data/keyword.cpp +++ b/src/data/keyword.cpp @@ -591,7 +591,12 @@ String KeywordDatabase::expand(const String& text, // Combine keyword & reminder with result if (expand) { - String reminder = kw->reminder.invoke(ctx)->toString(); + String reminder; + try { + reminder = kw->reminder.invoke(ctx)->toString(); + } catch (const Error& e) { + handle_error(_ERROR_2_("in keyword reminder", e.what(), kw->keyword), true, false); + } ctx.setVariable(_("keyword"), to_script(total)); ctx.setVariable(_("reminder"), to_script(reminder)); result += _(""); diff --git a/src/script/functions/basic.cpp b/src/script/functions/basic.cpp index 80e48577..c64f5250 100644 --- a/src/script/functions/basic.cpp +++ b/src/script/functions/basic.cpp @@ -335,7 +335,11 @@ SCRIPT_RULE_2_N_DEP(expand_keywords, ScriptValueP, _("default expand"), default_ } SCRIPT_OPTIONAL_PARAM_C_(CardP, card); WITH_DYNAMIC_ARG(keyword_usage_statistics, card ? &card->keyword_usage : nullptr); - SCRIPT_RETURN(db.expand(input, default_expand, combine, ctx)); + try { + SCRIPT_RETURN(db.expand(input, default_expand, combine, ctx)); + } catch (const Error& e) { + throw ScriptError(_ERROR_2_("in function", e.what(), _("expand_keywords"))); + } } SCRIPT_RULE_2_DEPENDENCIES(expand_keywords) { default_expand->dependencies(ctx, dep);