Previous: Basic Methods, Up: Default Superclass

### 14.3 Signal Handling

The default superclass defines methods for managing error conditions. These methods all throw a signal for a particular error condition.

By implementing one of these methods for a class, you can change the behavior that occurs during one of these error cases, or even ignore the error by providing some behavior.

— Function: slot-missing object slot-name operation &optional new-value

> Method invoked when an attempt to access a slot in object fails. slot-name is the name of the failed slot, operation is the type of access that was requested, and optional new-value is the value that was desired to be set.

> This method is called from `oref`, `oset`, and other functions which directly reference slots in EIEIO objects.

> The default method signals an error of type `invalid-slot-name`. See Signals.

> You may override this behavior, but it is not expected to return in the current implementation.

> This function takes arguments in a different order than in CLOS.

— Function: slot-unbound object class slot-name fn

> Slot unbound is invoked during an attempt to reference an unbound slot. object is the instance of the object being reference. class is the class of object, and slot-name is the offending slot. This function throws the signal `unbound-slot`. You can overload this function and return the value to use in place of the unbound value. Argument fn is the function signaling this error. Use slot-boundp to determine if a slot is bound or not.

> In clos, the argument list is (class object slot-name), but eieio can only dispatch on the first argument, so the first two are swapped.

— Function: no-applicable-method object method &rest args

> Called if there are no implementations for object in method. object is the object which has no method implementation. args are the arguments that were passed to method.

> Implement this for a class to block this signal. The return value becomes the return value of the original method call.

— Function: no-next-method object &rest args

> Called from call-next-method when no additional methods are available. object is othe object being called on call-next-method. args are the arguments it is called by. This method signals no-next-method by default. Override this method to not throw an error, and its return value becomes the return value of call-next-method.