Java 프로그램을 실행시킬 때, 프로그램 로직이 잘못 설계되었거나, 외부적인 요인, 혹은 하드웨어 문제에 의해 오류가 발생한 적이 있을 것이다. 자바에서는 이렇게 예상과 다른 결과를 만들어 내거나, 심각하면 프로그램을 종료시키는 오류들을 Error와 Exception으로 구분한다. Error vs Exception 정확히 말하자면, 자바에서는 오류를 'Checked Exception', 'Unchecked Exception', 'Error' 총 3개로 구분한다. 이러한 오류들은 개발자가 예측할 수 있는지, 핸들러를 통해 처리/복구할 수 있는지, 시스템 레벨과 애플리케이션 레벨중 어디에서 발생하는지, 예외처리가 강요되는지, RuntimeException을 상속하는지 등에 따라..