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.


function handle_error {
  status=$?
 
  # 127 is: command not found
  if [[ $status -ne 127 ]]; then
    return
  fi
 
  lastcmd=$(history | tail -1 | sed 's/^ *[0-9]* *//')
 
  read cmd args <<< "$lastcmd"
 
  echo "you tried to call $cmd"
}
 
# Trap errors.
trap 'handle_error' ERR