-
자바 printStackTrace 사용 하면서 예외처리프로그래밍 JAVA 2020. 8. 12. 23:09
다른 예외와 함께 예외를 두는 것은 사슬로 묶인 예외를 형성한다.
앞의 절에서, 캐치 블록은 원래의 예외를 다시 강조한다. 가끔 너는
원본과 함께 새로운 예외(추가 정보 포함)가 필요할 수 있음
예외의 이것을 사슬로 묶인 예외라고 한다. 목록 14.9는 생성 및 투척 방법을 보여준다.
사슬에 묶인 예외
목록 14.9 체인ExceptionDemo.java
1명의 공용 계층 체인으로 구성예외 데모 {
2개의 공용 정적 보이드 주(String[] args) {
키
포인트
사슬로 묶인 예외
추적을 쌓다
538 14장 예외 처리 및 텍스트 I/O
체인 예외 발생 새 예외("새로운 정보 from method1, ex);
자바.의예외: 메서드1의 새 정보
체인에서ExceptionDemo.method1(체인됨)ExceptionDemo.java:16)
체인에서ExceptionDemo.main(체인됨)ExceptionDemo.java:4)
원인: java.lang.예외: 메서드2의 새 정보
체인에서ExceptionDemo.method2(체인됨)ExceptionDemo.java:
체인에서ExceptionDemo.method1(체인됨)예외Demo.java:13)
…1개 더
메인 메소드는 메소드1 (4행), 메소드1은 메소드2 (13행)를 호출한다.
method2는 예외를 발생시킨다(라인 21). 이 예외는 다음 위치에 있는 캐치 블록에 잡힌다.
method1이며 16행에서 새로운 예외로 포장된다. 새로운 예외는 던져지고
6행의 메인 메서드에서 캐치 블록에 걸렸다. 샘플 출력이 출력을 표시함
7행의 인쇄StackTrace() 메서드에서. 메서드1에서 삭제된 새 예외
먼저 표시된 후 메소드2에서 삭제된 원래 예외를 표시한다.
14.9 사용자 지정 예외 클래스 정의
java.lang을 확장하여 사용자 지정 예외 클래스를 정의할 수 있다.예외 클래스.
Java는 꽤 많은 예외 클래스를 제공한다. 가능한 경우 정의 대신 사용
귀하만의 예외 클래스. 그러나 제대로 될 수 없는 문제에 부딪친다면.
미리 정의된 예외 클래스로 설명되며, 자신만의 예외 클래스를 만들 수 있으며,
예외 또는 예외 하위 클래스(예: IOException)에서 파생됨.
Listing 14.7, CircleWithException.java에서 setRadius 방법은 다음과 같은 예외를 발생시킨다.
반경은 음이다. 반지름을 핸들러에게 전달하려고 한다고 가정합시다. 그럴 때는 할 수 있다.
Listing 14.10에 표시된 대로 사용자 지정 예외 클래스를 정의하십시오.
LISTING 14.10 InvalidRadius예외.java
1명의 공용 클래스 {
비디오참고
14.9 사용자 지정 예외 클래스 정의 539
이 사용자 지정 예외 클래스는 java.lang을 확장한다.예외(1줄) 예외 클래스
Java.csv를 확장하다던질 수 있다. 모든 방법(예: getMessage()), toString() 및
예외의 printStackTrace()는 Turnable에서 상속된다. 예외 클래스
4개의 생성자를 포함한다. 그 중, 다음 두 개의 시공자를 사용하는 경우가 많다.
6호선은 메시지로 슈퍼클래스의 생성자를 호출한다. 이 메시지는 다음에서 설정될 것이다.
예외 개체로, 객체에 getMessage()를 호출하여 얻을 수 있다.
팁
Java API의 대부분의 예외 클래스는 두 개의 생성자, 즉 no-arg 생성자를 포함한다.
메시지 매개 변수가 있는 생성자.
InvalidRadius를 생성하려면 다음과 같이 하십시오.예외적으로 반지름을 통과해야 한다. 그러므로
Listing 14.7에서 setRadius 방법은 Listing 14.11에서와 같이 수정할 수 있다.
14.11 TestCircleWithCustom 목록예외.java
1개의 공용 클래스 TestCircleWithCustom예외 {
2개의 공용 정적 보이드 주(String[] args) {
3번 시도 {
4 새로운 CircleWithCustom예외(5);
새로운 CircleWithCustom 5개예외(-5);
6 새로운 CircleWithCustom예외(0);
7 }
8마리(InvalidRadius)예외 ex) {
9 System.out.println(ex);
10 }
11
12 System.out.println("생성된 개체 수: " +
13 CircleWithException.getNumberOfObjects();
14 }
15 }
16
17 클래스 CircleWithCustom예외 {
18 /** 원의 반지름 */
19 사설 이중 반지름
20
21 /** 생성된 개체 수 */
22개의 개인 정적 int numberOfObjects = 0;
23
24 /** 반경 1 */의 원 구성
25 CircleWithCustom예외() {
26 이(1.0);
27 }
28
29 /*** 지정된 반지름을 가진 원 구성 */
30 CircleWithCustom예외(double newRadius)
31 {
32 setRadius(newRadius);
33 NumberObjects++;
34 }
35
36 /** 반환 반지름 */
InvalidRadius를 던지다예외
InvalidRadius를 던지다예외
자바.의예외
+예외()
+예외(메시지: 문자열)
메시지가 없는 예외를 생성하십시오.
지정된 메시지로 예외 구성
선언하다
'프로그래밍 JAVA' 카테고리의 다른 글
자바 파일클래스와 PrintWriter 클래스 (0) 2020.08.13 자바 파일클래스 사용법 (0) 2020.08.13 자바 Try Catch 블럭 사용하기 (0) 2020.08.12 자바 getStackTrace를 통한 처리내용 (0) 2020.08.11 자바 예외 선언 다이어그램 사용법 (0) 2020.08.11