상세 컨텐츠

본문 제목

Java - 예외의 직접처리 + 간접처리 : throws + throw

개발/Java

by 뉴에이스 2018. 9. 28. 15:29

본문

	throws : 예외의 간접 처리시 사용
	
	- 메서드의 선언부에 사용
	[접근제한자] [활용제한자] 반환타입 메서드명([매개변수]) [throws 예외클래스타입, ..] {}
	- 선언된 메서드내에 예외가 발생할 수 있음을 알려준다.
	(메서드를 사용하려는 쪽에 예외가 발생할 수 있음을 알려준다.)
	- try ~ catch 를 사용하지 않아도 된다.
	
	try {} catch(FileNotFoundException e){}
	->
	throws FileNotFoundException
	- throws 선언된 메서드를 호출하는 쪽에서 예외 처리를 대신 해야 한다.
	  (호출한 메서드를 try ~ catch 사용해서 처리)

 

소스

 

class 알바 {
	public void 일하다 () throws Exception {
		try {
		FileReader fr = new FileReader("a.txt");
		} catch (Exception e) {
			System.out.println("자체 문제 처리...");
			System.out.println("상황에 대한 인지...");

			// 직접 처리 후 호출한쪽으로 문제가 있음을 알려주기 위해
			// 예외를 강제로 발생시킨다.
			// throws Exception 를 사용했을 경우 함께 사용 가능
			// throw 예외객체변수;
			// throw new 예외클래스();
			// throw new Exception();
			throw e;
		}
	}
}

 

class 사장 {
	public void 운영하다 () {
		알바 alba = new 알바();
		
		try {
		alba.일하다();
		} catch (Exception e) {
			System.out.println("호출한 쪽에서 다시한번 예외 확인함");
			e.printStackTrace();
		}
		
	}
}
	public static void main(String[] args) {
		사장 a = new 사장();
		a.운영하다();
	}

 

결과

 

자체 문제 처리...
상황에 대한 인지...
호출한 쪽에서 다시한번 예외 확인함
java.io.FileNotFoundException: a.txt (지정된 파일을 찾을 수 없습니다)

 

'개발 > Java' 카테고리의 다른 글

Java - Date, Calendar, SimpleDateFormat  (0) 2018.09.28
Java - Wrapper 클래스  (0) 2018.09.28
Java - 예외, Exception, try~catch~finally  (0) 2018.09.28
Java - final  (0) 2018.09.28
Java - 인터페이스  (0) 2018.09.28

관련글 더보기

댓글 영역