Task

Demonstrate how to make the object respond (sensibly/usefully) to an invocation of a method on it that it does not support through its class definitions.

Note that this is not the same as just invoking a defined method whose name is given dynamically; the method named at the point of invocation must not be defined.

This task is intended only for object systems that use a dynamic dispatch mechanism without static checking.



Related task

   Send an unknown method call.


 
:- object(foo).
 
	:- public(try/0).
	try :-
		catch(bar::message, Error, handler(Error)).
 
	handler(error(existence_error(predicate_declaration,message/0),_)) :-
		% handle the unknown message
		...
 
:- end_object.
 