> Java > java지도 시간 > Java에서 예외를 다시 발생시킨다는 것은 무엇을 의미합니까?

Java에서 예외를 다시 발생시킨다는 것은 무엇을 의미합니까?

WBOY
풀어 주다: 2023-09-01 16:57:05
앞으로
1397명이 탐색했습니다.

Java에서 예외를 다시 발생시킨다는 것은 무엇을 의미합니까?

catch 블록에 예외가 캐시되면 throw 키워드를 사용하여 예외를 다시 발생시킬 수 있습니다(예외 개체 발생).

예외를 다시 발생시킬 때 조정되지 않은 경우와 동일한 예외를 발생시킬 수 있습니다. -

try {
   int result = (arr[a])/(arr[b]);
   System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
}
catch(ArithmeticException e) {
   throw e;
}
로그인 후 복사

또는 새로운 예외로 감싸서 발생시키세요. 캐시된 예외를 다른 예외로 래핑하여 발생시키는 것을 예외 체인화 또는 예외 래핑이라고 합니다. 이렇게 하면 추상화를 유지하면서 더 높은 수준의 예외를 발생시키도록 예외를 조정할 수 있습니다.

try {
   int result = (arr[a])/(arr[b]);
   System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
}
catch(ArrayIndexOutOfBoundsException e) {
   throw new IndexOutOfBoundsException();
}
로그인 후 복사

Example

다음 Java 예제에서 코드는 데모메소드()에서 ArrayIndexOutOfBoundsException 및 ArithmeticException이라는 두 가지 예외를 발생시킬 수 있습니다. 우리는 두 개의 서로 다른 catch 블록에서 이 두 가지 예외를 포착합니다.

catch 블록에서는 예외 중 하나를 더 높은 수준의 예외로 래핑하여 다른 예외를 직접 다시 발생시킵니다.

Demo

import java.util.Arrays;
import java.util.Scanner;
public class RethrowExample {
   public void demoMethod() {
      Scanner sc = new Scanner(System.in);
      int[] arr = {10, 20, 30, 2, 0, 8};
      System.out.println("Array: "+Arrays.toString(arr));
      System.out.println("Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)");
      int a = sc.nextInt();
      int b = sc.nextInt();
      try {
         int result = (arr[a])/(arr[b]);
         System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
      }
      catch(ArrayIndexOutOfBoundsException e) {
         throw new IndexOutOfBoundsException();
      }
      catch(ArithmeticException e) {
         throw e;
      }
   }
   public static void main(String [] args) {
      new RethrowExample().demoMethod();
   }
}
로그인 후 복사

Output1

의 중국어 번역은

Output1

Array: [10, 20, 30, 2, 0, 8]
Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)
0
4
Exception in thread "main" java.lang.ArithmeticException: / by zero
   at myPackage.RethrowExample.demoMethod(RethrowExample.java:16)
   at myPackage.RethrowExample.main(RethrowExample.java:25)
로그인 후 복사

Output2

Array: [10, 20, 30, 2, 0, 8]
Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)
124
5
Exception in thread "main" java.lang.IndexOutOfBoundsException
   at myPackage.RethrowExample.demoMethod(RethrowExample.java:17)
   at myPackage.RethrowExample.main(RethrowExample.java:23)
로그인 후 복사
입니다.

위 내용은 Java에서 예외를 다시 발생시킨다는 것은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿