By Alvin Alexander. Last updated: March 17, 2019
I may work on this a little more over time, but here’s a little look at what errors, checked exceptions, and unchecked exceptions look like in Java:
┌──────────┐ │ Object │ └─────▲────┘ │ ┌──────┴──────┐ │ Throwable │ └──────▲──────┘ │ ┌──────────────────────┴───────────────────┐ │ │ ┌──────┴──────┐ ┌──────┴──────┐ │ Exception │ │ Error │ └──────▲──────┘ └──────▲──────┘ │ │ ▲─────────────────────┴──────────▲ │ │ │ │ │ │ │ │ ┌───────────┐ ┌─────┴──────────┐ │ ┌────────────────┐ ├───┤IOException│ │RuntimeException│ ├──┤OutOfMemoryError│ │ └───────────┘ └─────▲──────────┘ │ └────────────────┘ │ ┌─────────────────────┐ │ ┌────────────────────┐ │ ┌───────────────────┐ ├───┤FileNotFoundException│ ├──┤NullPointerException│ ├──┤VirtualMachineError│ │ └─────────────────────┘ │ └────────────────────┘ │ └───────────────────┘ │ ┌────────────┐ │ ┌─────────────────────┐ │ ┌──────────────────┐ ├───┤SQLException│ ├──┤IllegalStateException│ ├──┤StackOverflowError│ │ └────────────┘ │ └─────────────────────┘ │ └──────────────────┘ │ ┌────────────┐ │ ┌───────────────────┐ │ ┌───────┐ ├───┤ more ... │ ├──┤ArithmeticException│ └──┤IOError│ │ └────────────┘ │ └───────────────────┘ └───────┘ │ ┌───────────────────┐ └──┤ IndexOutOfBounds │ │ Exception │ └───────────────────┘ (checked exceptions) (unchecked exceptions)
I created that as an ASCII image so I can embed it in a Markdown document. Unfortunately you have to scroll the image a little bit from left to right, but even with that, I hope it’s useful.