Interfaces for most common exceptions.
ThrowableInterface- The base of all exception interfaces. Declares all the same methods asExceptionin a compatible way, and additionally extendsStringableInterface.BadSubjectExceptionInterface- Base interface for all exceptions that are related to some value being invalid, malformed, out of range, etc. Exposes that value viagetSubject().InvalidArgumentExceptionInterface- Allows de-coupling from the vanillaInvalidArgumentException, and makes it more useful besides signalling the problem type by exposing the argument viaBadSubjectExceptionInterface#getSubejct().ArgumentCodeAwareInterface- Useful withInvalidArgumentExceptionInterfacefor providing information about the source of the problematic argument.OutOfBoundsExceptionInterface- Complementing the nativeOutOfBoundsException, it occurs when a key is addressed in a set that does not have it, like accessing a non-existing array key. Exposes the bad key.OutOfRangeExceptionInterface- Complementing the nativeOutOfRangeException, it occurs when a value is valid but illegal, i.e. is outside of the allowed range, like when an integer that represents a colour and must be 0-255 has the value of 256. Exposes the bad value.RuntimeExceptionInterface- A generic runtime problem.InternalExceptionInterface- A problem that occurs in relation to the inner workings of the unit, and is not caused by the consumer. Guarantees to expose an inner exception.