java异常函数_java-多个异常抛出函数的异常处理实践

使用方法取决于异常是应由someFunction()方法的客户端处理还是应在异常发生时即在someFunction()方法内部进行捕获和处理.

在异常嵌套的情况下,不需要嵌套.

您可以使用一个try语句,然后将可能会生成异常的两个调用放在其中.

如果在两个调用的方法之一中发生异常,则在catch语句之一中结束,因此仅当第一个未引发捕获的异常时才执行第二个方法.

它产生的结果与您的代码完全相同,但是只需尝试一次,而且不会嵌套,可读性较差.

public void someFunction() {

try {

function1();

function2();

...

} catch (Func1Exception e) {

System.out.println("Function 1 failed!");

}

catch (Func2xception e) {

System.out.println("Function 2 failed!");

}

}

如果您在catch语句后还有一些其他指令并且希望即使在捕获了预期的异常之一的情况下仍要执行这些指令,则此方法非常适合.

异常返回情况表明了一个非常接近的问题.

可以通过一次尝试将其重构:

public void someFunction() {

try {

function1();

function2();

...

} catch (Func1Exception e) {

System.out.println("Function 1 failed!");

return;

}

catch (Func2xception e) {

System.out.println("Function 2 failed!");

return;

}

}

...

}

如果您在catch语句后还有其他说明,并且不希望在捕获到预期异常之一的情况下执行这些指令,则此方法非常适合.

尽管如此,对于这两种情况,如果两个异常(Func1Exception和Func2xception)的异常处理相同,则可以将它们分组在单个catch语句中:

public void someFunction() {

try {

function1();

function2();

...

}

catch (Func1Exception | Func2xception e) {

System.out.println("Function 1 or 2 failed!");

}

}

最后,仅当异常应由方法的客户端处理时,将异常添加到方法签名的情况下才有意义.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值