Erlang and method_missing

erlang, method-missing

Solution

There is the 'error_handler' module which is called when you attempt to call an undefined function.

process_flag(error_handler, Module).

The module needs to export `undefined_function/3` and `undefined_lambda/3`. You can see how this should be implemented in the standard handler module, `error_handler`.

You need to be careful in your own `error_handler` not to break the standard code loading system. Erlang usually tries to load the module from an undefined function error and re-run the function before giving up and signalling an error. You usually want to try the standard error_handler first and fall back to your new behaviour if that fails.

Problem

I come from a Java and Ruby background and I was wondering if there is any equivalent of "method_missing" in Erlang. I have looked at the documentation and the closest I can see is the use of erl_eval and erl_parse, but I wanted to know if there is any other way?

Original source