您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

在Java中,重新抛出异常是什么意思?

2024/2/20 1:34:00发布23次查看
当异常缓存在 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示例中,我们的代码在demomethod()中可能会抛出arrayindexoutofboundsexception和arithmeticexception两个异常。我们在两个不同的catch块中捕获这两个异常。
在catch块中,我们通过将其中一个异常包装在更高级的异常中,另一个异常直接重新抛出。
演示
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 的中文翻译为:输出1array: [10, 20, 30, 2, 0, 8]choose numerator and denominator(not 0) from this array (enter positions 0 to 5)04exception in thread "main" java.lang.arithmeticexception: / by zero at mypackage.rethrowexample.demomethod(rethrowexample.java:16) at mypackage.rethrowexample.main(rethrowexample.java:25)
输出2array: [10, 20, 30, 2, 0, 8]choose numerator and denominator(not 0) from this array (enter positions 0 to 5)1245exception in thread "main" java.lang.indexoutofboundsexception at mypackage.rethrowexample.demomethod(rethrowexample.java:17) at mypackage.rethrowexample.main(rethrowexample.java:23)
以上就是在java中,重新抛出异常是什么意思?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product