일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- class
- try&catch
- 디렉티브
- 알고리즘
- 2884
- JSP
- OOP
- 객체지향
- jvm
- 공개키 암호
- 자료구조
- LANG
- 암호론
- 소수판정
- bubble-sort
- 재귀호출기본
- 객체
- 클래스 패스
- 형변환 연산자
- BufferedWrite
- lang package
- 자동 형변환
- 프로그래밍
- 백준 알고리즘
- 현대암호
- 연결된 예외
- HTML
- java
- 예외처리
- 백준
Archives
- Today
- Total
코드일기장
[Java] 연결된 예외 (예외처리1-6) 본문
🎈 연결된 예외
- 한 예외가 다른 예외를 발생시킬 수 있다.
- 예외 A가 예외 B를 발생시키면, A는 B의 원인 예외 (cause exception).
두 예외를 연결 시키는 메서드는 initCause()
원인 예외를 반환할 때는 getCause()
🎈 코드 예시
더보기
package composite;
public class Main {
public static void main(String[] args) {
try {
install();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
static void install()throws InstantiationException {
try{
start();
}catch(MemoryException m) {
InstallExcetpion ie=new InstallExcetpion("설치중 예외발생");
ie.initCause(m);
throw ie;
}
}
static void start() {
throw new MemoryException("저장공간 부족");
}
}
class InstallExcetpion extends RuntimeException{
public InstallExcetpion(String str) {
super(str);
}
}
class MemoryException extends RuntimeException{
public MemoryException(String strs) {
super(strs);
}
}
MemoryException은 InstallExcetpion의 원인 예외이다. 그리고 예외를 InstallExcetpion으로 던진다.
즉, 예외 initCause(원인예외)
원인 예외 사용 이유
1. 여러 예외를 하나로 묶기 위해서.
2. checked 예외를 unchecked예외로 바꿀 때 사용
🎈 코드 예시
더보기
public static void main(String[] args) {
throw new RuntimeException(new InstallExcetpion(null));
throw new MemoryException("에러");
}
}
class InstallExcetpion extends Exception{
public InstallExcetpion(String str) {
super(str);
}
}
class MemoryException extends Exception{
public MemoryException(String strs) {
super(strs);
}
}
위 코드는 컴파일이 안된다. InstallException은 Exception의 자손이라 예외처리가 필수였지만 RuntimeException으로 감싸서 unchecked예외가 되었다.
커버사진
https://www.flaticon.com/free-icon/java_152760
<a href="https://www.flaticon.com/free-icons/java" title="java icons">Java icons created by Freepik - Flaticon</a>
'Java' 카테고리의 다른 글
[Java] hashCode(), toString() (0) | 2022.02.04 |
---|---|
[Java] Object클래스의 메서드- equals() (0) | 2022.01.24 |
[Java] 사용자 정의 예외, 예외 되던지기 (예외처리 1-5) (0) | 2022.01.16 |
[Java] 메서드에 예외 선언, finally 블럭 (예외처리 1-4) (0) | 2022.01.12 |
[Java] JVM메모리 구조, 기본 재귀호출-팩토리얼 (0) | 2022.01.11 |
Comments