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(); }
다음 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(); } }
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)
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!