상세 컨텐츠

본문 제목

[자바] 예외 처리(2) throws /throw 왜 쓸까?/ 위임/ Exception/일부러 발생시키는 오류

java_자바

by 쫑메이 2020. 8. 24. 00:04

본문

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

프로그램 실행 중에 발생하는 의도치 않는 상황,

즉 문제가 생기면 프로그램이 실행 도중 비정상적으로 종료되면서 나머지 코드가 실행되지 않는다

 

그래서 자바에서는 예외 관련 클래스를 통해 프로그램을 정상적으로 종료하도록 도와주는데

이것을 바로 (예외 처리) Exception Handling이라고 한다

 

 

 

 

 

 

 


[자바_예외 처리] throws 키워드


 

 

* throws 키워드를 사용한 예외 처리의 위임(전달)

- 예외가 발생한 곳에서 try ~ catch 블록으로 예외를 직접 처리할 수 있지만,

자신이 직접 처리하지 않고, 메서드를 호출한 곳으로 예외를 위임(떠넘김) 할 때

throws 키워드를 사용한다.

- 예외 처리를 위임받은 메서드는 다시 예외 처리에 대한 책임이 발생하며,

자신이 직접 처리하거나 또 다른 곳으로 위임할 수 있음.

- 최종적으로 마지막 단계의 메서드에서는 try ~ catch 블록을 통해 처리해야 함

(ex. 자바에서는 main() 메서드)

- throws 키워드를 사용하여 지정하는 예외 클래스는 1개 또는 복수가 일 수 있음

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바_예외 처리] throws 키워드_기본 문법


 

 

 

< 기본 문법 >

[접근 제한자] 리턴 타입 메서 두 명([파라미터...]) throws 예외 처리 클래스명 {

// 예외가 발생하는 코드

 

 

예시

publicstaticvoid부장()throwsException {}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

[자바_예외 처리] throws 왜 쓰느냐?


 

 

 

왜 API들은 사용자에게 예외 처리를 위임하는 것일까?

 

try ~catch~ 블록 사용법을 몰라서 일까?

NO!!!

만약 예외가 발생하는 API들이 발생한 예외들을 모두 try~ catch로 처리해버린다면

API를 사용하는 애플리케이션에는 어떤 문제가 발생했는지 전혀 알 수 없게 된다

 

 

하지만 개발자에게 예외를 전달함으로써 예외 처리를 강요할 수 있고,

개발자는 자신이 작성한 애플리케이션에서 예외 상황에 대한 적절한 처리가 가능해진다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바_예외 처리]

사용자가 예외를 발생시키는 throw


 

 

 

자바 기준으로 예외가 아닌 상황에서도 개발자의 의도대로 예외를 발생시킨다

어떻게?

throw 키워드를 사용하여 발생시킬 예외 클래스의 객체를 지정한다.

즉 강제로 예외를 발생

 

 

 

 

 

 

 

 

 

 


 

[자바_예외 처리]

사용자가예외를 발생시키는 throw: 기본 문법


 

 

 

일반적으로 예외 객체는 한 번 발생시키면 재사용할 일이 없으므로 별

도의 변수 없이 바로 임시 객체 형태로 사용하는 경우가 많음

throw 변수명 또는 throw new 예외 클래스명() 형태로 사용한다

 

 

 

<기본 문법>

throw 예외 객체;

 

 

 

 

 

 

 

 

throw 키워드로 강제 예외 발생 시 예외 처리를 위임하는 것이 필수!

 

 

 

 

 

 

 

 

 

 

 

그래서 메서드 뒤에서 throws Exception을 사용해야 함!!!!

 

 

 

 

 

 

 

 

throws로 오류를exceptionMethod(105);에던졌더니 오류가 뜬다

그래서 try~catch를 써서 예외 처리를 한다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바_예외 처리]

throw와 throws 차이점


 

 

 

throw는 에러를 일부러 발생시키는 것

 

throws는 에러를 바로 처리하기 귀찮을 때,

나중에 처리할 수 있도록 미룰 때 사용

메서드에서 처리해야 할 하나 이상의 예외를 메서드를 호출한 곳으로 던져 버린다

예외를 한곳으로 모아서 한꺼번에 예외 처리를 할 때 사용한다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

ㅣ읽느라 수고 많으셨어요~ㅣ

 

 

 

 

 

 

 

 

 

 


 

 

 


 

 

 

 

 

 

 

 

 

 

부족한 글을 읽어주셔서 감사드립니다

 

아직 부족한 게 많으니

틀린 곳이 있다면

조언의 말씀 꼭 부탁드립니다!!!!

 

 

 

 

 

 

 

 


 

 

반응형

관련글 더보기