본문 바로가기
Language/Java

예외(Exception)

by 태윤2 2020. 7. 6.

프로그램 실행 중 발생하는 의도치 않은 상황(문제)

예외 발생 시 프로그램은 실행 도중 비정상적으로 종료됨

=> 예외 발생 시점부터 나머지 코드가 실행되지 않음

예외 처리를 통해 프로그램을 정상적으로 종료하도록 해야 함

Exception Handling이라고 함

예외 처리를 위해서 try ~ catch 문으로 사용

try 블록 내에 예외가 발생할 것으로 예상되는 코드들을 작성

catch 블록 내에 특정 예외 발생 시 수행할 동작(예외 처리 코드)을 기술

(단, 발생한 예외를 처리할 수 있는 예외 클래스 변수 선언 필요함!)

 

1. Compile Checked Exception 계열 : 코드 작성 시 컴파일 시점에서 예외 발생 여부를 알 수 있음

=> 예외를 처리하지 않으면 프로그램 실행 불가

ex) SQLException, IOException

 

2. Compile UnChecked Exception 계열 : 컴파일 시점에서 예외 발생 여부를 알 수 없고 실행 시점에서 알수 있음

=> 예외를 처리하지 않더라도 컴파일 에러 발생하지 않음

ex) RuntimeException 계열 (ArithmethicException, ArrayIndexOutOfBoundsException, NullPointerExceoption)

 

 

 

여러개의 예외를 처리하는 방법

- 하나의 try 블록 내에서 복수개의 예외(Exception)가 발생할 경우

catch 블록을 해당 예외 갯수만큼 생성하여 각각의 예외클래스를 명시하거나

상위 예외 클래스를 하나 선언하여 한꺼번에 처리 가능

단, catch 블록은 위에서부터 차레대로 실행되므로 처리 순서에 주의해야함

=> 하위클래스 타입부터 상위 클래스 타입 순으로 처리해야함

ex) 1번 ArithmeticException, 2번 RuntimeException, 3번 Exception

(만약, 역순으로 처리하면 Exception 에서 모든 예외가 처리됨, 나머지 실행 불가)

'Language > Java' 카테고리의 다른 글

Thread(쓰레드)  (0) 2020.07.07
throws 키워드를 사용한 예외 처리의 위임  (0) 2020.07.07
정규표현식  (0) 2020.07.06
StringTokenizer~format  (0) 2020.07.06
시간 관련 클래스 및 패키지  (0) 2020.06.25