🌱 오늘의 주제 : checked 예외, unchecked 예외
🌱 멀티 catch 블럭
- 여러 catch블럭을 '|' 기호를 이용해서, 하나의 catch블럭으로 합칠 수 있다.
- 중복된 코드를 줄일 수 있다.
try {
...
} catch (ExceptionA | ExceptionB e) {
e.printStackTrance();
}
🌱 예외 발생시키기
- 키워드 throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다.
1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다.
Exception e = new Exception("고의로 발생시켰음");
2. 키워드 throw를 이용해서 예외를 발생시킨다.
throw e;
package try_catch;
public class Ex8_6 {
public static void main(String[] args) {
// 예외 발생시키기
try {
Exception e = new Exception("고의로 발생시켰음."); // 예외 클래스 객체를 만든다.
throw e; //예외를 발생시킴.
// throw new Exception("고의로 발생시켰음") // 한 줄로 줄여 쓸 수있다.
} catch (Exception e) {
System.out.println("에러 메시지 : " + e.getMessage());
e.printStackTrace();
}
System.out.println("프로그램이 정상 종료되었음.");
}
}
-------<결과>
에러 메시지 : 고의로 발생시켰음.
java.lang.Exception: 고의로 발생시켰음.
at try_catch.Ex8_6.main(Ex8_6.java:8)
프로그램이 정상 종료되었음.
🌱 checked 예외, unchecked 예외
package try_catch;
public class ex8_7 {
public static void main(String[] args) {
// checked 예외 : Exception 클래스와 그 자손들이 발생할 가능성이 있는 문장들에 대해 예외 처리 해주지 않으면 컴파일 조차 안됨.
throw new Exception(); // Exception을 고의로 발생시킨다.
}
}
--- <결과>
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type Exception
at try_catch.ex8_7.main(ex8_7.java:7)
package try_catch;
public class ex8_8 {
public static void main(String[] args) {
// unchecked 예외 :예외처리를 하지 않았음에도 성공적으로 컴파일 됨. RuntimeException클래스와 그 자손들은 예외처리를 강제하지 않음.
throw new RuntimeException(); // 고의로 발생
}
}
--<결과>
Exception in thread "main" java.lang.RuntimeException
at try_catch.ex8_8.main(ex8_8.java:8)
'Java' 카테고리의 다른 글
Java - 예외 되던지기, 연결된 예외 (0) | 2023.02.22 |
---|---|
Java - 메서드에 예외 선언하기 (0) | 2023.02.21 |
Java - try - catch문 (0) | 2023.02.20 |
Java - TreeSet (0) | 2023.02.15 |
Java - Stack과 Queue (0) | 2023.02.09 |