프로그램 실행 중에 발생하는 의도치 않는 상황,
즉 문제가 생기면 프로그램이 실행 도중 비정상적으로 종료되면서 나머지 코드가 실행되지 않는다
그래서 자바에서는 예외 관련 클래스를 통해 프로그램을 정상적으로 종료하도록 도와주는데
이것을 바로 (예외 처리) Exception Handling이라고 한다
* throws 키워드를 사용한 예외 처리의 위임(전달)
- 예외가 발생한 곳에서 try ~ catch 블록으로 예외를 직접 처리할 수 있지만,
자신이 직접 처리하지 않고, 메서드를 호출한 곳으로 예외를 위임(떠넘김) 할 때
throws 키워드를 사용한다.
- 예외 처리를 위임받은 메서드는 다시 예외 처리에 대한 책임이 발생하며,
자신이 직접 처리하거나 또 다른 곳으로 위임할 수 있음.
- 최종적으로 마지막 단계의 메서드에서는 try ~ catch 블록을 통해 처리해야 함
(ex. 자바에서는 main() 메서드)
- throws 키워드를 사용하여 지정하는 예외 클래스는 1개 또는 복수가 일 수 있음
< 기본 문법 >
[접근 제한자] 리턴 타입 메서 두 명([파라미터...]) throws 예외 처리 클래스명 {
// 예외가 발생하는 코드
예시
publicstaticvoid부장()throwsException {}
try ~catch~ 블록 사용법을 몰라서 일까?
NO!!!
만약 예외가 발생하는 API들이 발생한 예외들을 모두 try~ catch로 처리해버린다면
API를 사용하는 애플리케이션에는 어떤 문제가 발생했는지 전혀 알 수 없게 된다
하지만 개발자에게 예외를 전달함으로써 예외 처리를 강요할 수 있고,
개발자는 자신이 작성한 애플리케이션에서 예외 상황에 대한 적절한 처리가 가능해진다
자바 기준으로 예외가 아닌 상황에서도 개발자의 의도대로 예외를 발생시킨다
어떻게?
throw 키워드를 사용하여 발생시킬 예외 클래스의 객체를 지정한다.
즉 강제로 예외를 발생
일반적으로 예외 객체는 한 번 발생시키면 재사용할 일이 없으므로 별
도의 변수 없이 바로 임시 객체 형태로 사용하는 경우가 많음
throw 변수명 또는 throw new 예외 클래스명() 형태로 사용한다
<기본 문법>
throw 예외 객체;
throw 키워드로 강제 예외 발생 시 예외 처리를 위임하는 것이 필수!
그래서 메서드 뒤에서 throws Exception을 사용해야 함!!!!
throws로 오류를exceptionMethod(105);에던졌더니 오류가 뜬다
그래서 try~catch를 써서 예외 처리를 한다
throw는 에러를 일부러 발생시키는 것
throws는 에러를 바로 처리하기 귀찮을 때,
나중에 처리할 수 있도록 미룰 때 사용
메서드에서 처리해야 할 하나 이상의 예외를 메서드를 호출한 곳으로 던져 버린다
예외를 한곳으로 모아서 한꺼번에 예외 처리를 할 때 사용한다
ㅣ읽느라 수고 많으셨어요~ㅣ
부족한 글을 읽어주셔서 감사드립니다
아직 부족한 게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
[자바] 정규 표현식( Regular Expression,‘regexp') 패턴/ 메타 문자 (0) | 2020.08.26 |
---|---|
[자바] 형식화 클래스_ DecimalFormat 클래스/메소드/toString (0) | 2020.08.25 |
[JAVA] 자바_누적 함수/ 별만들기/짝수,홀수(반복문for문/if문 조건문) (0) | 2020.08.23 |
[자바] 형식화 클래스_ SimpleDateFormat 클래스/날짜보기쉽게 만들어 주는 유용한 기능 (0) | 2020.08.22 |
[자바] MessageFormat 클래스/연결하기/끼워넣기/배열에 사용하기 (0) | 2020.08.21 |