// 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 |