fix: try-catch optional `on_config_changed/2` plugin app callback

This commit is contained in:
JimMoen 2024-07-31 09:26:44 +08:00
parent 3d1f0c756c
commit e6bfc14cc9
No known key found for this signature in database
1 changed files with 12 additions and 1 deletions

View File

@ -380,7 +380,18 @@ maybe_call_on_config_changed(NameVsn, NewConf) ->
{ok, PluginAppModule} ?= app_module_name(NameVsn),
true ?= erlang:function_exported(PluginAppModule, FuncName, 2),
{ok, OldConf} = get_config(NameVsn),
_ = erlang:apply(PluginAppModule, FuncName, [OldConf, NewConf])
try erlang:apply(PluginAppModule, FuncName, [OldConf, NewConf]) of
_ -> ok
catch
Class:CatchReason:Stacktrace ->
?SLOG(error, #{
msg => "failed_to_call_on_config_changed",
exception => Class,
reason => CatchReason,
stacktrace => Stacktrace
}),
ok
end
else
{error, Reason} ->
?SLOG(info, #{msg => "failed_to_call_on_config_changed", reason => Reason});