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

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

WBOY
WBOY앞으로
2023-09-01 16:57:051379검색

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으로 문의하시기 바랍니다. 삭제