The CardRuntimeException class
defines a field reason and two accessor methods
getReason() and setReason(). The reason
field encapsulates an exception cause identifier in the Java Card platform.
All Java Card platform unchecked Exception classes should extend
CardRuntimeException. This class also provides a resource-saving mechanism
(throwIt() method) for using a Java Card runtime environment-owned instance of this class.

Even if a transaction is in progress, the update of the internal reason
field shall not participate in the transaction. The value of the internal reason
field of Java Card runtime environment-owned instance is reset to 0 on a tear or reset.

setReason

throwIt

Throws the Java Card runtime environment-owned instance of the CardRuntimeException class with the
specified reason.

Java Card runtime environment-owned instances of exception classes are temporary Java Card runtime environment Entry Point Objects
and can be accessed from any applet context. References to these temporary objects
cannot be stored in class variables or instance variables or array components.
See Runtime Environment Specification for the Java Card Platform, section 6.2.1 for details.