Published 2022. 11. 7. 17:32

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
복사했습니다!