In Java terms, errors are thrown to an event handler which catches
it and processes it.
Thus, exception objects are always instances of the Throwable class and
can be thrown from a routine to an error handler. In the following example,
we see that the readLine() method might throw an IOException error object
if it has trouble reading a line.
public String readLine() throws IOException
It is also of interest to know that a method may throw multiple errors
by listing them as a comma separated list after the "throws" keyword.
Of course, a method may perform correctly without throwing an error. The
throws portion just allows the method to deal with the "other" cases.
You can also throw your own error objects including both those available
through the JDK as well as ones you create yourself.