YUYANE

Java/ Exception 본문

Programming Languages/JAVA

Java/ Exception

YUYA 2021. 1. 5. 09:55

학습 강의

pocu-ko.teachable.com/courses/enrolled

예외(exception)

 

1) try-catch-finally문

try{
	//시도할 코드들
} catch(<예외 클래스 1> <변수명>){
	//예외가 발생할 경우 해당 예외를 처리할 코드
} catch(<예외 클래스 2> <변수명>){
	//예외가 발생할 경우 해당 예외를 처리할 코드
} finally {
	//예외 발생 여부와 상관 없이 항상 실행 되는 코드
}

- catch는 하나 이상 존재 가능

- finally는 생략 가능

 

 

2) catch와 예외 클래스

- IOException: 입출력과 관련된 예외 클래스들의 부모 클래스

  - EOFException, FileNotFoundException, FileSystemException 등

- ArithmeticException: 산술과 관련된 예외(예: 0으로 나누기)

- IndexOutOfBoundsException: 배열이나 문자열의 색인 범위가 넘어갈 때 

- 등등

- 특정하기 어렵거나 모든 예외를 잡고 싶다면 Exception 클래스(최상위 부모 예외 클래스) 사용

 

3) 다중 catch 블록 작성 시 주의점

- 부모 예외 클래스가 자식보다 먼저 나오면 안됨

- 특정 -> 일반 순서로 적어나갈 것

 

4) printStackTrace( ) / getMessage( )

- 현재 발생한 예외의 호출 스택을 보여줌

- 예외가 왜 발생했는지를 설명

- 메시지가 없을 수도 있는데, 이 때는 null을 반환

 

5) 예외가 발생했을 때 진행 순서

a. try 블록의 실행이 중단됨

b. catch 블록 중에 발생한 예외를 처리할 수 있는 블록이 있는 지 찾음(위에서부터 하나씩)

c.

 - 예외를 처리할 수 있는 catch 블록이 없다면 : finally 블록을 실행 후, 한 단계 높은 try 블록으로 전달

 - 예외를 처리할 수 있는 catch 블록이 있다면 

   - 해당 catch 블록 안의 코드들이 실행

   - finally 블록을 실행

   - try 블록 이후의 코드 실행

 

 

Comments