CheckedException : 반드시 예외처리를 해야만하는 예외들
=> 조건문 제시 불가 (예측불가한 곳에서 문제가 발생)
=> 외부 매개체와 입출력이 일어날 때 발생됨 (IOException)
=> try~catch구문 / throws 를 이용하여 예외처리
예시 1.
사용자에게 키보드값 ( BufferedReader)를 사용해 입력받았을때 발생하는 IOException처리
BufferedReader 는 Scanner 와 비슷하게 키보드로 값을 입력받을 수 있는 객체 이지만 문자열로만 읽어들여짐.
해결방법 1. try ~ catch문 이용
try ~ catch문 : 지금 즉시 곧바로 예외를 처리하겠다
// try {예외가 발생할 가능성이 있는 코드 작성}
// catch(발생될 예외클래스 매개변수) {try구문 내에서 예외발생시 처리할 구문}
public void method2() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("아무거나 입력해주세요 : ");
try{
String str = br.readLine();
System.out.println(str);
}catch(IOException e) {
System.out.println("예외가 발생했습니다.");
}
System.out.println("프로그램을 종료합니다.");
}
해결방법 2 . throws 이용 ( 메소드명 () 뒤 throws IOException 붙임)
throws : 지금 즉시 예외를 처리하지 않고 현재 이메소드를 호출했던 곳으로 예외처리를 떠넘기겠다(위임하다)
public void method2() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("아무거나 입력해주세요 : ");
String str = br.readLine();
System.out.println(str);
System.out.println("프로그램을 종료합니다.");
//main까지 쭉 throws로 떠넘기면 JVM이 알아서 처리
}
***UnCheckedException 과 CheckedException의 비교
예외클래스 | 예외발생시점 | 예외처리 | |
UncheckedException | RuntimeException관련 | 런타임에러(프로그램 실행시) | 개발자가 조건문or예외처리 구문으로 처리 |
CheckedException | RuntimeException 외 | 컴파일에러(빨간줄 발생시) | 필수 ( 예외처리 구문으로만 해결가능) |
'JAVA' 카테고리의 다른 글
12. IO (IntputOutput) _바이트기반Stream (0) | 2022.11.07 |
---|---|
12. IO (IntputOutput) _ file생성 (0) | 2022.11.07 |
11. Exception_ UnCheckedException (0) | 2022.11.07 |
10. API _ Date (0) | 2022.11.04 |
10. API _ Wrapper (0) | 2022.11.04 |