본문 바로가기

JAVA/DAY 19 _ 23.09.12

Try Catch

// exception 처리코드

System.out.println("1");
    try {

        System.out.println("2");		

        // 상황1. byZero
        int a = 10/0;

        // 상황2. null
        String str = null;
        str.trim();

        System.out.println("3");

    }catch(Exception e) {
        System.out.println("예외 발생");
        e.printStackTrace();	
        // 얘가있어야 java.lang.ArithmeticException: by zero 출력됨
        // --> 첫 exception위치부터 알려준당

    }finally {
        System.out.println("finally : 여기는 무조건 시행되는 코드");
        // 코드 흐름 무시하고 return코드가 있어도 그냥 실행시켜버림! (강력하다고 ^_^)
        // ★★ 여기서 scn.close(); 같은거 자주 쓴다 --> 닫아줘야하는 코드는 꼭 실행시켜야 하니까!
    }

    System.out.println("4");


    // exception전까지는 실행O, exception이후로 건너뛰어서 catch부터 다시 실행

 

**Exception : 모든 exception들의 최상위 부모

// **Exception : 모든 exception들의 최상위 부모

}catch(NullPointerException e) {
System.out.println("Null.. 발생");
e.printStackTrace();		

//---> 이런식으로 딱하나의 경우만 잡으면 :
// ArithmeticException같은 경우는 못잡아서 뻗는다. (= 4가 출력이안되고 바로 끝!)	

}catch(ArithmeticException e) {
System.out.println("산술연산 에러.. 발생");
e.printStackTrace();

// ---> 이것도 if, elseif처럼 쓸 수 있당... (근데 순서는 상관없음)

 

'JAVA > DAY 19 _ 23.09.12' 카테고리의 다른 글

Custom Exception  (0) 2023.09.12
Checked exception  (0) 2023.09.12
Exception Basic  (0) 2023.09.12
Set summary  (0) 2023.09.12
Map summary  (0) 2023.09.12