[JAVA]

19. 예외처리(1/2)

혜리노베이션 2023. 5. 26. 16:51

1. 예외처리

 1) 컴파일 에러: 컴파일 할 때 발생하는 에러 (javac.exe : 자바 컴파일러)
 2) 런타임 에러: 실행할 때 발생하는 에러 => 프로그램 종료
     * 에러: 프로그램 코드에 의해서 수습될 수 없는 '심각'한 오류 / 는 어쩔 수 없다
     ** 예외: 프로그램 코드에 의해서 수습될 수 있는 '미약'한 오류 / 는 처리하자
     *** 예외처리: 예외를 대비한 코드를 작성하는 것, 비정상 종료를 막고 정상적인 상태를 유지하기 위함
 3) 논리적 에러: 작성 의도와 다르게 동작 => 프로그램 종료X

 

2. 예외 처리하기 (try-catch문)


- 블럭 내에서 예외가 발생한 경우
  * 발생한 예외와 일치하는 catch블럭이 있는지 확인
  ** 일치하는 catch블럭을 찾으면 문장들을 수행하고 전체 try-catch문을 빠져나가 계속 수행
- try블럭 내에서 예외가 발생하지 않은 경우
  * catch블럭을 거치지 않고 전체 try-catch문을 빠져나가서 수행을 계속한다.

 


3. printStackTrace()와 getMessage()


 1) printStackTrace(): 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메세지를 출력
 2) getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메세지를 얻을 수 있다.
 3) 멀티 catch블럭: 내용이 같은 catch블럭을 하나로 합친 것

 


4. 예외 발생시키기


- 연산자 new를 이용해서 발생시키려는 예외 클래스 객체를 만들고,
  키워드 throw를 이용해서 예외를 발생시킨다.
- checked예외: 컴파일러가 예외 처리 여부를 체크 *예외처리 필수
- unchecked예외: 컴파일러가 예외 처리 여부를 체크 안함 *예외 처리 선택