Interfaces for most common exceptions.
ThrowableInterface
- The base of all exception interfaces. Declares all the same methods asException
in 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 withInvalidArgumentExceptionInterface
for 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.