유디의 공간정보·개발일기

H5-1. 0723_ 예외처리 테스트(계속) 본문

JDBC

H5-1. 0723_ 예외처리 테스트(계속)

55yudi 2021. 10. 31. 15:53

[ExceptionTest2]

package myjdbc;

public class ExceptionTest2 { //예외처리는 throws절 또는 try-catch문으로 한다.

	public static void main(String[] args) {
		System.out.println("start"); //실행순서 : 5-7-8 a호출- 27 -39 -11-13으로 끝난다.
		try {			  //38줄이 false가 되면 : 5-7-8 a호출- 27 -39 -다시 8로-9/ -13-15?
			System.out.println("before");
			a();
			System.out.println("after");
		} catch (Exception e) { //던져진 객체를 e라는 이름으로 참조하며
			System.out.println(e.getMessage()); //여기서 "haha"가 출력된다.
		} finally {
			System.out.println("final");
		}
		System.out.println("end");
		//컴파일오류이유: 정의된 a메서드(함수)(아래아래)에 throws Exception이 정의되어 있으므로 예외처리를 해줘야 된다.
			// 또는 메서드를 정의할 때 try-catch로 예외처리를 하면 메서드 자체만으로 가능
	}

//	private static void a() throws Exception {
//		if(true) {
//			throw new Exception("haha");
//		}	
//	}
	
	private static void a() throws Exception {
		b();
	} //정의된 b함수(아래아래)에 throws절이 있으므로 반드시 예외처리를 해줘야 된다.
	
//	private static void a() {
//		try {
//			b();
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
	
	private static void b() throws Exception {
		if(false) {
			throw new Exception("haha"); //생성자호출하고 객체생성해서 던진다. --> 10줄
		}
		System.out.println("b");
	}
	
}

 

[ExceptionTest3]

package myjdbc;
import java.io.FileReader;

public class ExceptionTest3 {

	public static void main(String[] args) {
		FileReader fr = new FileReader("List.txt");
		//왜 컴파일오류가 나는지? --> 생성자호출하는 것이고,
		//		FileReader가 throws절로 정의되어 있으니까 예외처리를 해줘야 하는데 안해줘서 컴파일도 안됐기때문

	}

}