"The supertype of all unexpected transient failures. An `Exception` is usually unrecoverable from the point of view of the immediate caller of an operation. For example, code that interacts with a relational database isn't typically written to recover from transaction rollback or loss of network connectivity. However, these conditions aren't completely unrecoverable from the point of view of the program's generic exception handling infrastructure. Therefore, they are best treated as `Exception`s. A subclass of `Exception` represents a more specific kind of problem, and may define additional attributes which propagate information about problems of that kind." by ("Gavin", "Tom") shared native class Exception(description=null, cause=null) extends Throwable(description, cause) { "A description of the problem." String? description; "The underlying cause of this exception." Throwable? cause; }