250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오블완
- 다형성
- 프록시
- java
- @configuration
- equals()
- HttpServletResponse
- html form
- 스프링컨테이너
- 인터페이스
- 코드트리조별과제
- 티스토리챌린지
- 오버라이딩
- 김영한
- 스프링
- 코드트리
- fielderror
- 서블릿
- JSON
- DI
- 테스트코드
- 참조변수
- objecterror
- http 메시지 컨버터
- 의존관계
- 코딩테스트
- 백준
- 추상클래스
- ocp
- 싱글톤
Archives
- Today
- Total
minOS
자바의 정석 ch8-9,10 예외 발생 시키기 본문
728x90
ch8-9 예외 발생 시키기
1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다.
Exception e = new Exception("고의로 발생 시킴");
2. 키워드 throw를 이용해서 예외를 발생시킨다.
throw e;
예제
import java.util.logging.Level; import java.util.logging.Logger; public class Ex8_6 { private static final Logger logger = Logger.getLogger(Ex8_6.class.getName()); public static void main(String[] args) { try { Exception e = new Exception("고의로 발생 시킴"); throw e; // 예외 발생시킴 //throw new Exception("고의로 발생 시킴") 한줄로 축약 가능 } catch (Exception e) { System.out.println("에러 메세지 : " + e.getMessage()); logger.log(Level.SEVERE, "An error occurred", e); } System.out.println("프로그램 정상 종료되었음"); } }
ch8-10 checked예외, unchecked예외
- checked 예외 : 컴파일러가 예외 처리 여부를 체크 (예외 처리 필수) - Exception과 자손들
- unchecked 예외 : 컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)- RuntimeException과 자손들
checked 예외 - 예외 처리 필수
public class Ex8_7 { public static void main(String[] args) { throw new Exception(); // 고의로 예외 발생 컴파일에러 checked예외 (예외처리 필수) } }
예외처리public class Ex8_7 { public static void main(String[] args) { try { throw new Exception(); // 고의로 예외 발생 컴파일에러 checked예외 (예외처리 필수) } catch (Exception e) {} } }
unchecked 예외 - 예외 처리 선택public class Ex8_8 { public static void main(String[] args) { throw new RuntimeException(); //언체크드예외, 런타임 시점에서 예외발생 } }
Unchecked 예외의 선택적 처리 이유:
□ 프로그래머의 실수 반영
├─ 주로 논리적 오류나 실수로 발생
├─ 예: NullPointerException, ArrayIndexOutOfBoundsException
└─ 코드 작성 시 주의로 대부분 예방 가능
□ 코드 가독성 향상
├─ 모든 Unchecked 예외 처리 강제 시 코드 복잡화
└─ 불필요한 예외 처리 코드 감소로 가독성 개선
□ 유연성 제공
├─ 상황에 따른 예외 처리 여부 결정 가능
└─ 더 유연한 코드 작성 지원
□ 실행 시간 효율성
├─ 필요한 경우에만 선택적 처리 가능
└─ 불필요한 예외 처리로 인한 성능 저하 방지
□ 예외 전파의 용이성
├─ 상위 레벨로의 예외 전파 용이
└─ 적절한 위치에서의 예외 처리 가능
728x90
'TIL > 남궁성의 자바의 정석' 카테고리의 다른 글
자바의 정석 ch8-15~17 사용자 정의 예외 만들기, 예외 되던지기 (1) | 2024.09.14 |
---|---|
자바의 정석 ch8-11~14 예외선언하기 ,finally블럭 (1) | 2024.09.12 |
자바의 정석 ch8-7~8 printStackTrace(),멀티 catch블럭 (0) | 2024.09.05 |
자바의 정석 ch8-4~6 예외 처리하기 , try- catch문 흐름 (0) | 2024.09.04 |
자바의 정석 ch8-1~3 프로그램 오류 , 예외 클래스의 계층구조 (0) | 2024.08.31 |