728x90
예외 처리 방법) try - catch - finally
try{ ---> 예외(오류)가 발생할 수 있는블록
}catch(예외클래스 변수명){ ---> 예외 처리 블록(여러 블록 사용 가능)
}finally ---> 예외 발생 여부에 상관없이 반드시 실행되는 블록(생략 가능)
}
public class Test{
public static void main(String[] args) {
int i = 10;
int j = 0;
// 예외가 발생할 수 있는 부분
try{
int k = i / j;
System.out.println(k);
// 예외를 처리하는 부분
}catch(ArithmeticException e){
System.out.println("0으로 나눌 수 없습니다. : " + e.toString());
// 무조건 실행되는 부분
}finally {
System.out.println("오류가 발생하든 안하든 무조건 실행되는 블록입니다.");
}
}
}
예외 클래스명.toString() -> 예외 정보를 알려주는 메소드
예외클래스에 Exception을 두게 된다면 어떤 오류가 발생하든지 간에
하나의 catch블록에서 모든 오류를 처리할 수 있다.
throws : 예외 떠넘기기(3인칭. 제3자가 처리하도록 던짐)
메소드 내에서 수행하다가 발생되는 오류를 메소드 내에서 처리하지 않고
이 메소드를 호출한 곳에서 처리할 수 있도록 오류를 떠넘기는 throws가 있다.
(여러 개를 ,를 이용해서 떠넘기기 가능)
public class Test{
public static void main(String[] args) {
int i = 10;
int j = 0;
try{
int k = divide(i, j);
System.out.println(k);
} catch(ArithmeticException e){
System.out.println("0으로 나눌수 없음");
}
}
public static int divide(int i, int j) throws ArithmeticException{
int k = i / j;
return k;
}
}
728x90
'강의 정리하기 > JAVA' 카테고리의 다른 글
기본 API 클래스(1) (0) | 2023.03.08 |
---|---|
Exception 예외처리(2) (0) | 2023.03.07 |
중첩 클래스와 익명 클래스 (0) | 2023.03.07 |
클래스 형변환 (0) | 2023.03.05 |
다형성과 오버로딩, 인터페이스 (0) | 2022.01.25 |