An exception class used for signaling run-time failure of reading
and writing operations.

In addition to a message string, a reference to another
Throwable (Error or
Exception) is maintained. This reference, if
non-null, refers to the event that caused this
exception to occur. For example, an IOException while
reading from a File would be stored there.