예외 처리

윤혜림·2023년 6월 23일
0

인수가 잘못들어와서 메소드가 제대로 작동하지 않게되는걸 방지하기 위해서
catch ,try를 사용.
try catch가 잡아준다.
사람에 의해 설계되는거라서 예외처리는 완벽하게 잡아주진 못한다
그래도 최선을 다 해서 오류가 안나도록 한다.

if)
1.커피숍 사람 많음
2.커피숍 문 닫음
3.지갑 없음
catch: 해결방식) 다른 곳으로 간다, 커피 안사먹는다..

이 모든 것의 부모:exception
집에 감 이라고 퉁 칠수 있다 셋중에 뭐가 발생해도 무조건 집에 간다.

Case 1 : main 메서드에 try,catch


public class DivideByZero {
    static void divide(int n) {
        int result = 10 / n;
        System.out.println("나눈 결과:" + result);
    }

    public static void main(String[] args) {
        try {
            divide(0);

        } catch (ArithmeticException e) {// Exception 이름 적어주면 더 정확
            System.out.println(e.getMessage());
        }

    }

}

Case 2 : 생성자에 try catch

package ex08;

public class DivideByZero2 {// try catch를 메서드에서 구현할수있음
    static void divide(int n) {
        try {
            int result = 10 / n;
            System.out.println("나눈 결과:" + result);

        } catch (Exception e) {
            System.out.println("0으로 나눌수 없습니다.");
        }

    }

    public static void main(String[] args) {

        divide(0);

    }

}

Case 3:throws Exception -try catch를 남한테 넘기겠다

package ex08;

public class DivideByZero3 {

    // 0으로 나누면 분명 오류가 날건데, 그 제어는 사용자에게 맡기고 싶다.
    static void divide(int n) throws Exception {
        int result = 10 / n;
        System.out.println("나눈 결과:" + result);
    }

    public static void main(String[] args) {

        try {
            divide(0);
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        } // 메인에는 스로우 걸지 말것 jvm으로 넘기는거라 오류남

    }

}

try와 catch 블록은 별도의 독립된 블록이다.
따라서 try블록에서 정의 된 변수는 catch블록에서 사용할 수 없다.

profile
도라에몽

0개의 댓글

관련 채용 정보