1. 程式人生 > >7.6 錯誤處理-未定義函式和未註冊名稱

7.6 錯誤處理-未定義函式和未註冊名稱

-module(error_handler).
-export([undefined_function/3]).

undefined_function(Module, Func, Args) ->
    case code:is_loaded(Module) of
        {file,File} ->
           % the module is loaded but not the function
           io:format("error undefined function:~w ~w ~w",
                 [Module, Func, Args]),
           exit({undefined_function,{Module,Func,Args}});
        false ->
           case code:load_file(Module) of
                 {module, _} ->
                     apply(Module, Func, Args);
                 {error, _} ->
                     io:format("error undefined module:~w",
                     [Module]),
                     exit({undefined_module, Module})
           end
     end.