Exception Sources
When an exceptional case occurs in code, an exception object is thrown by the source of the problem, which is in turn caught by one of the callers in the call stack. The exception object is an instance of one of the exception classes. There are many such classes, which represent various types of problems. In this topic, we will take a look at different types of exceptions, get to know some of the exception classes from Java libraries, learn how to create our own exceptions, and see how to throw them.
In the previous topic, we first played with IOException. Then, in the activity, we played with NumberFormatException. There was a difference between these two exceptions. The IDE would force us to handle IOException and would not compile our code otherwise. However, it did not care whether we caught NumberFormatException or not, it would still compile and run our code. The difference was in the class hierarchy. While both of them are descendants of the Exception class, NumberFormatException...