java 异常 return_java异常处理中的return语句

本问题已经有最佳答案,请猛点这里访问。

如果执行不会导致异常,则控件将转到finally块。那么,try块中的返回语句是否正被JVM忽略?。或者,如果发生异常,则控件将转到catch块,同时忽略返回语句,控件将转到finally块并从finally返回。

public class Helper {

public int showException(int a, int b){

try{

int c=a/b;

return c;

} catch(Exception e){

return 0;

} finally{

return 3;

}

}

}

catch块中的"return"设计不好。

finally总是运行的,不管什么,尝试删除finally(如果不需要的话)。

@为什么是法拉奎?如果你的行动成功了,你需要回去怎么办?

@一旦它成功了,它就不会去抓块了。

那么你总是把return false;放在你的方法的末尾,因为当它不起作用的时候?

@tooncastele不一定"返回false"是一个异常条件。而控制流将只在异常条件下捕获。Try…Catch用于处理"异常"。

只是想弄明白为什么设计不好?如果只返回Try内部的条件,而返回Try-Catch块外部的其他条件(如果不满足该条件,但代码没有给出异常),该怎么办?如果你发现了一个例外,你还会返回一些甚至不同的东西吗?(我知道您可以从那里重新引发异常,但我只是想知道为什么它对您的代码不好)

@一旦开始,这个(stackoverflow.com/questions/77127/什么时候抛出一个excel‌&8203;选项)和这个(programmers.stackexchange.com/questions/107723/…)会给出更多的想法。

我要问的是,如果try中没有异常,则返回try should execute;如果发生异常,则返回catch should executed,然后控制权转到finally。这是否意味着JVM忽略try或catch块中的返回

所以它看起来更像是一种编码约定,没有真正的反面,否则,或者我错了?谢谢你的信息,我会更详细地阅读你的链接。编辑:第二个帖子告诉我关于你的流量和速度。谢谢

从catch返回本身就是不错的设计。例如,如果一个方法使用integer.parseint(..)将字符串解析为整数,则可以选择从catch块返回默认值。

因为无论你是进入try还是进入catch的时候,每次都会执行finally块,所以我认为这就是它最终被调用的原因。

从Java文档

The finally block always executes when the try block exits. This

ensures that the finally block is executed even if an unexpected

exception occurs.

号注意:只有在

If the JVM exits while the try or catch code is being executed, then

the finally block may not execute. Likewise, if the thread executing

the try or catch code is interrupted or killed, the finally block may

not execute even though the application as a whole continues.

我要问的是,如果try中没有异常,则返回try should execute;如果发生异常,则返回catch should executed,然后控制权转到finally。这是否意味着JVM忽略try或catch块中的返回

@声纳:是的,只有当你在finally中定义了return时,它才会忽略try的return。

@SONAL:放置在finally块中的代码必须执行try块中发生的任何操作。

六羟甲基三聚氰胺六甲醚。。。谢谢编码员

根据设计,finally块中的返回始终优先。

The finally block always executes when the try block exits. This

ensures that the finally block is executed even if an unexpected

exception occurs. But finally is useful for more than just exception

handling — it allows the programmer to avoid having cleanup code

accidentally bypassed by a return, continue, or break. Putting cleanup

code in a finally block is always a good practice, even when no

exceptions are anticipated.

在此处阅读更多信息

无论try catch块是否执行,finally块始终执行

关于try/catch块中的返回,jvm是否只从finally返回?

无论是否调用catch块,finally都将最后被调用。也许您想阅读更多的文档。最终尝试捕获

这是关于Java,而不是JavaScript

当我单击它时,链接会转到javascript…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值