가장 빈번히 발생하는 실행 예외. null 값을 갖는 참조 변수에 도트를 사용했을 때 발생.
try-catch-finally
try: 예외 발생 가능 코드
catch: 예외 처리
finally: 항상 실행(생략 가능)
catch 블록이 여러 개라도 단 하나의 catch 블록만 실행됨, 예외가 발생하는 즉시 catch 블록으로 이동하기 때문.
상위 예외 클래스를 하위 예외 클래스보다 뒤에 둬야 하위 예외 클래스가 실행이 된다. 하위 예외 클래스는 상위 예외 클래스를 상속한 것이기 때문에, 상위 예외 클래스를 하위 클래스보다 앞에 두면 항상 상위 예외 클래스만이 실행되게 된다.
리소스란 데이터를 읽고 쓰는 객체라고 생각하자.
try-with-resources
사용자 정의 예외 클래스는 대부분 생성자만을 포함한다.
위 2가지 타입의 생성자를 가진다.