예외 처리
- 프로그램에서 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고
정상실행을 유지할수 있도록 예외처리를 해야합니다.
try-catch-finally 블록
- try 블록에는 예외 발생 가능 코드가 위치 합니다.
- catch 블록은 try 블록에서 발생한 예외를 잡아 처리하는 코드입니다.
- finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드 입니다.
try {
// 예외가 발생할 수 있는 코드
} catch (예외1 변수1) {
// 예외1을 처리하는 코드
} catch (예외2 변수2) {
// 예외2를 처리하는 코드
} finally {
// 항상 실행되는 코드
}
다중 catch 블록
- try블록에 다양한 예외가 발생할수 있는데 이를 예외별로 처리하기 위해 사용합니다.
- catch 블록이 여러개여도 한개의 catch 블록만 실행됩니다.
- 작성시 상위 예외 클래스가 하위 예외 클래스보다 아래쪽에 위치해야 합니다.
package sec10.exam01;
public class CatchOrderExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String data1 = args[0];
String data2 = args[1];
int value1 = Integer.parseInt(data1);
int value2 = Integer.parseInt(data2);
int result = value1 + value2;
System.out.println(data1 + "+" + data2 + "=" + result);
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("매개수 부족");
} catch(Exception e) {
System.out.println("실행 문제 발생");
} finally {
System.out.println("재실행 필요");
}
}
}
예외 떠넘기기
- 메소드를 호출한 곳으로 예외를 떠넘길수 있습니다.
- throws 키워드를 사용합니다.
- throws 키워드가 붙어 있는 메소드는 반드시 try블록 내에 호출되어야 합니다.
- throw 키워드 뒤에는 떠넘길 예외 클래스를 쉼표로 구분해 나열해 주면 됩니다.
package sec10.exam01;
public class ThrowsExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
findClass();
} catch(ClassNotFoundException e) {
System.out.println("클래스가 없습니다.");
}
}
public static void findClass() throws ClassNotFoundException {
Class clazz = Class.forName("java.lang.String2");
}
}
'학습단 > JAVA 학습단' 카테고리의 다른 글
14. 혼공자 14일차(java.util 패키지) (0) | 2023.07.20 |
---|---|
13. 혼공자 13일차(기본 API 클래스) (0) | 2023.07.19 |
11. 혼공자 11일차(예외) (0) | 2023.07.17 |
2주차 완료 (2) | 2023.07.15 |
10. 혼공자 10일차(중첩 인터페이스 & 중첩 클래스) (0) | 2023.07.15 |