java.lang.Exception
클래스를 상속 받음NullPointerException
객체 참조가 없는 상태
null 값을 갖는 참조변수로 객체 접근 연산자인 도트(.) 사용했을 때 발생
String data = null;
System.out.println(data.equals(“자바”);
ArrayIndexOutOfBoundsException
NumberFormatException
ClassCastException
예외 발생 코드
ClassCastException
예외 발생시키지 않으려면instanceof
연산자로 확인try ~ catch ~ finally
블록을 이용해서 예외 처리 코드 작성(1) 컴파일러 제시할 경우
빨간 줄 위에 마우스 대고 Surround with try / catch 선택
(2) 직접 삽입할 경우
메뉴 Source / Surround with try / catch
예외 처리할 문장 모두 드래그해서 선택한 후 (선택 안 하면 선택하라고 메시지 출력)
catch 순서
try 블록에서 예외가 발생했을 때 예외를 처리할 catch 블록은 위에서부터 차례대로 검색
만일 상위 클래스의 catch 블록이 위에 있다면 하위 클래스의 catch 블록은 실행 불가
throws
throws
자바 표준 API에서 제공하지 않는 예외 처리
개발자가 직접 정의해서 처리
애플리케이션 서비스와 관련된 예외
예외 클래스를 상속받는 클래스로 생성
(1) 컴파일러가 체크하는 일반 예외로 선언하거나
Exception 상속
(2) 컴파일러가 체크하지 않는 실행 예외 선언
RuntimeException 상속
throw
throw
: 예외 발생
throws
: 자신을 호출한 곳에서 예외를 처리하도록 예외를 떠 넘기는 것
getMessage()
printStackTrace()