ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 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를 던지다예외

     

     

    자바.의예외

    +예외()

    +예외(메시지: 문자열)

    메시지가 없는 예외를 생성하십시오.

    지정된 메시지로 예외 구성

    선언하다

    댓글

Designed by Tistory.