Diagram: What errors, checked exceptions, and unchecked exceptions look like in Java

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.