The organizational difference is needed because of the ways the different types need to be handled. Errors and the classes that derive from the Error class result from errors inside the system, such as lack of memory or some other error beyond your control. The idea in these instances is just to keep your program from crashing hard and simply to exit cleanly or figure a way around the problem. For this reason, your programming will not have to deal with these thrown Errors, because they usually are implemented by other classes that make sure those kind of errors don't occur and are handled nicely (instead of, for example, locking up the machine or crashing the operating system). In other words, you don't need to worry about handling OutofMemoryErrors, StackOverflowErrors and so on; they generally already are handled for you.
Answered by
ayisha
, an ibibo Master,
at
2:57 PM on January 13, 2008