Object: 예외도 객체이므로, 예외의 최상위 부모도 Object Throwable: 최상위 예외 Error: 메모리 부족이나 시스템 오류같이 애플리케이션에서 복구 불가능한 시스템 예외. Throwable을 catch로 잡으려 하면 Error도 잡혀서 Throwable은 잡으려 하면 안됨. Exception부터 잡아야 하는 오류로 생각해야함. Exceptions 체크 예외: 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외. RuntimeException을 제외하고 Exceptions의 하위 예외는 모두 체크 예외임. 체크 예외는 잡아서 처리하거나, 밖으로 던지도록 선언해야함. 개발자가 실수로 예외를 누락하지 않도록 컴파일러를 통해 문제를 잡아주는 장점이 있지만, 모든 체크 예외를 처리해주어야..