예측하거나 방지할 수 없는 문제로 시스템의 종료가 불가피하다.
코드로 방지하거나 해결할 수 있는 문제가 아닌 오류
주로 메모리부족 혹은 스택오버플로우같은 현상이다.
try {
오류가 발생할 가능성이 있는 코드
} catch(예외1){
수행될 코드
} catch(예외2){
수행될 코드
} finally{
예외에 상관없이 반드시 수행되어야할 코드
}
class MyErrException extends Exception { //Exception class를 상속받아야한다.
private String msg;
// 사용자 커스텀 예외클래스 생성자
public MyErrException(String msg) {
super(msg); // 부모 Exception 클래스 생성자도 호출
this.msg = msg;
}
// 사용자 커스텀 예외클래스 메세지 출력
public void printMyMessage() {
System.out.println(this.msg);
}
}
public class Main {
public static void main(String[] args) {
try {
throw new MyErrException("나의 커스텀 예외 클래스 메세지");
} catch (MyErrException e) {
e.printMyMessage(); // 커스텀 예외 클래스의 메서드 실행
e.printStackTrace(); // 상속한 부모클래스의 메서드 실행
}
}
}