首页 > 试题广场 >

关于异常处理机制的叙述正确的是()

[单选题]
关于异常处理机制的叙述正确的是()
  • catch部分捕捉到异常情况时,才会执行finally部分
  • 当try区段的程序发生异常时,才会执行finally部分
  • 当try区段不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
  • 以上都是
在Java语言的异常处理中,finally块的作用就是为了保证无论出现什么情况,finally块里的代码一定会执行。
由于程序执行return就意味着结束了对当前函数的调用并跳出这个函数体,因此任何语句执行都要放在return前执行(除非碰到exit函数),因此finally块里面的函数也是在return前执行的。
如果try-finally或者catch-finally中都有return语句,那么finally中的return语句会覆盖别处的,最终返回到调用者那里的是finally中的return值。
发表于 2015-10-07 17:30:02 回复(3)
finally中的代码是无论如何都会执行的。
另外再说下,如果抛出异常,并且在catch中有return语句,这个return语句会先执行,执行之后将结果保存在缓存中。再去查看是否有finally,如果有finally就先执行finally语句,之后再返回缓存中的return值。如果finally中也有return,那么finally中的return会覆盖掉之前缓存的return,即最终会返回finally中的值。
发表于 2017-01-16 11:09:51 回复(1)
try(....){
}catch(....){
}finally(...){
}
t满足try的条件的执行try后面花括号的语句
不满足,被catch中语句捕获到的执行catch花括号的语句
没有被catch捕获到或者catch执行完毕后和try执行完毕后都要执行finally中的语句


发表于 2015-10-07 16:50:59 回复(2)
都会执行finally部分
发表于 2016-01-08 14:52:46 回复(0)
try(){int x=?+}catch(){int x=?+}随便错,不管对错,只要后面跟finally就一定会执行finally,如果try catch finally都有return时,finally的return优先级最高,会覆盖前面的return
发表于 2018-08-18 17:25:09 回复(0)
java对finally的处理是在编译时候,在每一种情况分支下都添加finnaly语句块.
发表于 2020-02-18 17:05:36 回复(1)
在Java语言的异常处理中,finally块的作用就是为了保证无论出现什么情况,finally块里的代码一定会执行。
由于程序执行return就意味着结束了对当前函数的调用并跳出这个函数体,因此任何语句执行都要放在return前执行(除非碰到exit函数),因此finally块里面的函数也是在return前执行的。
如果try-finally或者catch-finally中都有return语句,那么finally中的return语句会覆盖别处的,最终返回到调用者那里的是finally中的return值。
发表于 2016-09-18 19:48:57 回复(0)
try(....){ }catch(....){ }finally(...){ } t满足try的条件的执行try后面花括号的语句 不满足,被catch中语句捕获到的执行catch花括号的语句 没有被catch捕获到或者catch执行完毕后和try执行完毕后都要执行finally中的语句
发表于 2022-10-21 21:19:35 回复(0)
finally一定执行,无论是否异常
发表于 2021-05-19 01:42:24 回复(0)
无论是否捕捉到异常,finally语句块中的语句一定会执行
发表于 2020-10-06 21:57:04 回复(0)
try catch finally 无论是否抛出异常,都会执行finally
发表于 2020-09-14 14:15:17 回复(0)

try 捕获到异常后才会执行 catch 语句块,但是 finally 中语句块无论是否捕获都会执行;

发表于 2020-08-11 09:00:30 回复(0)
<p>try里System.exit(0) finally不就不执行了吗</p>
发表于 2020-08-04 08:46:21 回复(0)
try catch finally  语句可以没有catch,jvm中用异常表来保存catch中的异常信息,用from  index 和to index来指定异常的范围,用target来描述特定异常。若有finally 语句块,则会额外复制两份异常表信息(即两份from index to index target  信息)分配到try 和catch里,当try语句对变量进行操作时,会将此操作结果缓存到本地变量表中,遇到finally若对此变量有操作时,将此变量赋予新值执行完后,若finally有return语句则返回新值,若没有则返回之前缓存的值。
发表于 2020-05-03 13:04:47 回复(0)
无论什么情况,finally都会执行的,用来释放资源
发表于 2019-09-16 19:37:33 回复(0)
finally可有可无 finally无论try快中有没有异常都会执行
发表于 2019-04-29 12:29:50 回复(0)

就是无论你挣的多少都得过你老婆finally的手


发表于 2019-04-18 16:56:29 回复(0)
finally代码块一定会执行,如果finally代码块中包含return语句,那么这个return值会覆盖别处的return值
发表于 2016-07-11 23:16:38 回复(0)
c
编辑于 2015-10-23 15:41:30 回复(0)
C 以前老师经常讲

发表于 2015-09-24 11:20:26 回复(0)