aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gen_mod.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
index e17927447..92a5628cb 100644
--- a/src/gen_mod.erl
+++ b/src/gen_mod.erl
@@ -66,13 +66,13 @@ start_module(Host, Module, Opts) ->
ets:insert(ejabberd_modules,
#ejabberd_module{module_host = {Module, Host},
opts = Opts}),
- case catch Module:start(Host, Opts) of
- {'EXIT', Reason} ->
+ try Module:start(Host, Opts)
+ catch Class:Reason ->
del_module_mnesia(Host, Module),
ets:delete(ejabberd_modules, {Module, Host}),
- ?ERROR_MSG("~p", [Reason]);
- _ ->
- ok
+ ?ERROR_MSG("Problem starting the module ~p for host ~p with options:~n ~p~n ~p: ~p",
+ [Module, Host, Opts, Class, Reason]),
+ erlang:raise(Class, Reason, erlang:get_stacktrace())
end.
%% @doc Stop the module in a host, and forget its configuration.