2013년 7월 1일 월요일

(130701) 6일차 ThrowsTest.java (Throws 예외 처리 테스트)

 - throws : 예외 처리의 또 다른 방법. Exception이 발생한 곳에서 직접 처리하지 않고 caller에게 넘기는(넘기겠다고 선언하는) 방법


 - 소스
public class ThrowsTest {

public void a() throws Exception{ // thorws를 이용한 예외 처리
System.out.println("22222");
// 예외 발생이 되는 순간 프로그램이 멈춤
/* try{
int result = 3/0; // Exception을 만나는 순간 catch로 가므로 b()는 실행되지 않는다.
b();
} catch(Exception e){
}*/
try{
b();
int result = 3/0;
} catch(Exception e){
System.out.println("66666");
System.out.println("55555");
}
public void b() throws Exception{
System.out.println("33333");
/* int result = Integer.parseInt("aaaaa"); // a()에서도 예외처리를 했으므로 여기서 예외처리 난 부분을 a()를 통해서 main으로 넘김
System.out.println("44444"); // 위에서 에러가 먼저 났으므로 윗부분이 떠넘겨지고 이부분은 무시됨 */
try{
int result = Integer.parseInt("aaaaa");
} catch(Exception e){
}
System.out.println("44444");
}
public static void main(String[] args){ // 메소드에 모두 예외처리를 했으므로 각 부분의 에러메세지가 다 나옴(throws를 해줘야함)
ThrowsTest tt = new ThrowsTest();
System.out.println("11111");
try {
tt.a();
} catch(Exception e) {
e.printStackTrace();
}
}
}

 - 결과









 - 입출력을 이용한 throws 테스트 소스
import java.io.*;

public class Filetest {

public static void main(String[] args) throws Exception {
File f = new File("aaa");
FileReader fr = new FileReader(f);
}
}


 - 결과