본문 바로가기

IT일반과목/java

예외처리4 Exception 이랑 예외처리에 대해서 직접 메소드가 처리안할때

Exception 확인

 -> Exception e 이다.

 -> FileInputStream

  -> 파일에서 정보를 가져올때 사용한다.

  -> 파일이 없는경우

  -> https://docs.oracle.com/javase/8/docs/api/ -> 여기서 FileInputStream여기봐보기


예외처리

 -> try ~ catch 구문써서 발생한곳에서 에러를 처리

 -> API문서에서 본것처럼 throws를 사용


1. try catch를 쓰는 경우가 있고

2. try catch 에서 catch에 정확한 명칭을 써서 에러처리하는 방법도 있고

3. 메소드에다가 throws 명칭을 쓰는방법이있다.메소드에 쓸경우 다른데서 자기를 호출하는 곳


이있으면 거기서 try~catch를 써줘야된다는 것이다. 다른 메소드 여러개일때 계속 미룰수는 있


는데 결국 한명은 해야된다.


package jongkyu.test;


import java.io.FileNotFoundException;

import java.io.FileReader;


public class ExceptionTest {

public void test() throws FileNotFoundException{

//내가직접 안할꺼야 나 부르는 메소드가 예외처리를 하라는 것이다.

// try {

// new FileReader("test.txt");

//

// } catch (Exception e) {

// // TODO: handle exception

// System.out.println("파일이없습니다.");

// }

//

// try {

// new FileReader("test.txt");

//

// } catch (FileNotFoundException e) {

// // TODO: handle exception

// System.out.println("파일이없습니다.");

// }//에러명칭을 안다면 이렇게 쓰는것도 좋다.

//

new FileReader("test.txt");

//이파일이 없으면 어떻게 할래?

}

public void test2() throws FileNotFoundException {

test();

}

}


================================================================================
package jongkyu.run;

import java.io.FileNotFoundException;

import jongkyu.test.Exam;
import jongkyu.test.ExceptionTest;

public class Run {
public static void main(String[] args) {


ExceptionTest e = new ExceptionTest();
try {
e.test2();
} catch (Exception e1) {
// TODO Auto-generated catch block
System.out.println("메롱이다.");
}
}
}

============================================================================
메소드에 throws를 붙이면 자기를 호출하는데서 에러를 처리하라는 의미이고 다른메소드 또만들어 호출은 할수있지만 또 내가 처리안할께 로 넘길수있다.
그렇게되면 결국 마지막에 실행하는 Run클래스에서 try catch를 해야된다.
즉 try~catch는 무조건 한번은 써줘야된다는 것이다.

이게 직접 처리를 하는것과 차이이다.

결론 : 예외처리의 위치를 조정해줄수 있다는 것이다.

'IT일반과목 > java' 카테고리의 다른 글

JAVA 네트워크  (0) 2018.07.31
예외처리 5 student라는곳에 예외처리를 해서 만들어보기  (0) 2018.07.31
예외처리3 finally까지 써보기  (0) 2018.07.31
예외처리2  (0) 2018.07.31
예외처리1  (0) 2018.07.31