2swan

try-catch 예시 본문

Programming/Java

try-catch 예시

2swan 2023. 12. 16. 15:10

 

예외 처리 try-catch
package exception;

// 예외 처리 (try-catch)
public class Exception5 {
    public static void main(String[] args) {
        ExceptionObj1 exobj = new ExceptionObj1();
        int value = exobj.divide(10, 0);
        System.out.println(value);
    }
}

class ExceptionObj1 {
    public int divide(int i, int k) {
        int value = 0;
        try{
            value = i / k;
        }catch (ArithmeticException e){
            System.out.println("0으로 나눌 수 없습니다.");
        }
        return value;
    }
}

 

 

예외 떠넘기기 throws
package exception;

// 예외 떠넘기기 (throws)
public class Exception2 {
    public static void main(String[] args) {
        ExceptionObj1 exobj = new ExceptionObj1();
        try {
            int value = exobj.divide(10, 0);
            System.out.println(value);
        } catch (ArithmeticException e) {
            System.out.println("0으로 나눌 수 없습니다.");
        }
    }
}

class ExceptionObj2 {
    public int divide(int i, int k)  throws  ArithmeticException{
        int value = 0;
        value = i / k;
        return value;
    }
}

 

 

다중 Exception
package exception;

// 다중 Exception
public class Exception6 {
    public static void main(String[] args) {
        int[] array = {4, 2};
        int[] value = null;
        try {
            value[0] = array[0] / array[1];
        } catch (ArrayIndexOutOfBoundsException aiob) {
            System.out.println(aiob.toString());
        } catch (ArithmeticException ae) {
            System.out.println(ae.toString());
        } catch (Exception ex) {
            System.out.println(ex.toString());
        }
    }
}

 

 

사용자 정의 Exception
package exception;

// 사용자 정의  Exception과 예외 발생 시키기(throw)
//오류 메시지나 , 발생한 Exception을 감싼 결과로 내가 만든 Exception을 사용하고 싶을 때가 많다.
public class MyExcption extends RuntimeException {
    public MyExcption(String message) {
        super(message);
    }

    // Throwable 자리에 Exception 사용가능
    public MyExcption(Throwable cause) {
        super(cause);
    }
}
package exception;

public class Exception7 {
    public static void main(String[] args) {
        try {
            ExceptionObj7 exobj = new ExceptionObj7();
            int value = exobj.divide(10, 0);
            System.out.println(value);
        } catch (MyExcption ex) {
            System.out.println("사용자 정의 Exception이 발생합니다.");
        }
    }
}

class ExceptionObj7 {
    public int divide(int i, int k) throws MyExcption{
        int value = 0;
        try {
            value = i / k;
        } catch (ArithmeticException ae) {
            throw new MyExcption("0으로 나눌 수 없습니다.");
        }
        return value;
    }
}

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

1차원 배열 예시  (0) 2023.12.19
Thread 예시  (0) 2023.12.16
Sort 정렬  (0) 2023.12.12
Map 제네릭  (0) 2023.12.12
Set 제네릭  (0) 2023.12.12