728x90
반응형
1. checkedException : 명시적 - try/catch로 예외를 처리하거나 혹은 메서드에서 throws 를 해야한다.
RuntimeException을 제외한 Exception 클래스와 모든 하위클래스들.
(ClassNotFoundException, IOException...)
2. uncheckedException : 암묵적 - 예외를 처리하든 안하든 상관없다.
RuntimeException과 하위클래스들
(NullPointerException,AtithmeticException,IndexOutOfBoundsException..)
예)
public class ExceptionTest{
public static void main(String[] args){
System.out.println("프로그램 시작");
System.out.println("첫번째 메서드를 호출합니다");
try{
firstGo();
}catch(Exception e){
System.out.println(e.getMessage()+"까지 무사히 처리되었습니다.");
System.out.println("폭탄의 종류 :"+e.getMessage());
}
}
static void firstGo(){ //에러발생!!! 세번째 폭탄을 처리하거나 다음 메서드로 던져야 한다.
System.out.println("두번째 메서드를 호출합니다");
try{
secondGo();
}catch(RuntimeException re){
System.out.println(re.getMessage()+"도 처리되었습니다.");
System.out.println("폭탄의 종류 :"+re.getMessage());
System.out.println("마지막 폭탄을 만듭니다");
throw new ClassNotFoundException("명박이!!!");
}
}
static void secondGo(){ //throws NullPointerException을 생략해도 상관없다.
System.out.println("세번째 메서드를 호출합니다");
try{
thirdGo();
}catch(Exception e){
System.out.println(e.getMessage()+"이 처리되었습니다.");
System.out.println("폭탄의 종류 :"+e.getMessage());
System.out.println("두번째 폭탄을 만듭니다");
throw new NullPointerException("영삼이!!!");
}
}
static void thirdGo() throws Exception{ //throws Exception을 생략하면 에러발생!!
System.out.println("첫번째 폭탄을 만듭니다");
throw new Exception("승만이!!!");
}
}
RuntimeException을 제외한 Exception 클래스와 모든 하위클래스들.
(ClassNotFoundException, IOException...)
2. uncheckedException : 암묵적 - 예외를 처리하든 안하든 상관없다.
RuntimeException과 하위클래스들
(NullPointerException,AtithmeticException,IndexOutOfBoundsException..)
예)
public class ExceptionTest{
public static void main(String[] args){
System.out.println("프로그램 시작");
System.out.println("첫번째 메서드를 호출합니다");
try{
firstGo();
}catch(Exception e){
System.out.println(e.getMessage()+"까지 무사히 처리되었습니다.");
System.out.println("폭탄의 종류 :"+e.getMessage());
}
}
static void firstGo(){ //에러발생!!! 세번째 폭탄을 처리하거나 다음 메서드로 던져야 한다.
System.out.println("두번째 메서드를 호출합니다");
try{
secondGo();
}catch(RuntimeException re){
System.out.println(re.getMessage()+"도 처리되었습니다.");
System.out.println("폭탄의 종류 :"+re.getMessage());
System.out.println("마지막 폭탄을 만듭니다");
throw new ClassNotFoundException("명박이!!!");
}
}
static void secondGo(){ //throws NullPointerException을 생략해도 상관없다.
System.out.println("세번째 메서드를 호출합니다");
try{
thirdGo();
}catch(Exception e){
System.out.println(e.getMessage()+"이 처리되었습니다.");
System.out.println("폭탄의 종류 :"+e.getMessage());
System.out.println("두번째 폭탄을 만듭니다");
throw new NullPointerException("영삼이!!!");
}
}
static void thirdGo() throws Exception{ //throws Exception을 생략하면 에러발생!!
System.out.println("첫번째 폭탄을 만듭니다");
throw new Exception("승만이!!!");
}
}
728x90