Thrown when the arithmetic stack ends up in a way that should not be.
Thrown when an operation deals with an author-made value that cannot be implicitly handled.
Thrown when a JS Exporter exception occurs.
Thrown when a generic module exception occurs.
Thrown if a problem happens during module execution.
Thrown when a module state read/write exception occurs.
This type of interrupt is thrown too many operations are executed on one request (in order to catch possible infinite loops), or when the function call stack gets too deep (to prevent stack overflows).
Thrown when an operation reads a value that has an unexpected type (usually because it was pre-checked at compile-time).