首页 > 试题广场 >

下面关于try-catch-finally语句块,描述正确的

[不定项选择题]
下面关于try-catch-finally语句块,描述正确的是()
  • catch可以和final单独使用
  • try可以和catch单独使用
  • try-catch-finally块中的语句都可以被执行
  • 如果try中的语句抛出异常,程序会跳过try块中剩余的语句,开始查找处理这个异常的代码
d哪里错了 告诉一下
发表于 2020-01-19 16:06:39 回复(8)
这道题感觉在玩文字游戏
发表于 2020-03-19 20:40:17 回复(0)
c选项有问题吧,如果没抛错被捕获,catch块里的语句不会执行吧
发表于 2020-01-16 17:28:41 回复(5)
 1.JVM并不是处理异常并不是采用指令跳转到(goto)处理异常的部分(catch).
 2.举个例子.
    try{
      nnnn;
    }catch(Exception e){
      e1e1e1;
    }catch(Throwable e){
      e2e2e2;
    }
    finally{
      fffff;
    }
    llllll;
编译后的字节码命令处理逻辑.
   1  nnnn
   2  fffff     执行finnaly
   3  goto llllll (如果没抛出异常直接goto llllll)
   4  e1e1e1  (第一个异常分支)
   5  fffff      执行finally
   6  goto llllll
   7  e2e2e2   (第二个异常分支)
   8  fffff      执行finally
   9  goto llllll 
   10 llllll
可以看出 
   1.java编译器会将finally语句块的指令在各种情况后面直接复制(2,5,8)
   2.goto是跳转到try-catch-finnally之后.
   3.成功跳转,失败继续向下执行(所以抛出异常并未跳转).
发表于 2020-02-15 14:18:47 回复(0)
d是对的,参考答案有误
发表于 2023-03-06 19:32:19 回复(0)
  1. 如果 try 代码块中没有拋出异常,则执行完 try 代码块之后直接执行 finally 代码块,然后执行 try catch finally 语句块之后的语句。
  2. 如果 try 代码块中拋出异常,并被 catch 子句捕捉,那么在拋出异常的地方终止 try 代码块的执行,转而执行相匹配的 catch 代码块,之后执行 finally 代码块。如果 finally 代码块中没有拋出异常,则继续执行 try catch finally 语句块之后的语句;如果 finally 代码块中拋出异常,则把该异常传递给该方法的调用者。
  3. 如果 try 代码块中拋出的异常没有被任何 catch 子句捕捉到,那么将直接执行 finally 代码块中的语句,并把该异常传递给该方法的调用者。
发表于 2022-09-09 17:44:01 回复(0)
如果c是对的  那么d也应该是对的
发表于 2021-09-06 11:45:32 回复(0)
这题有点考验文字分析:对C来说, 【都可以】,那么的确是可以选正确的,不过我就纳闷了,d为什么不对?

发表于 2021-08-02 14:07:06 回复(0)
只有我这是finally显示final嘛
发表于 2020-09-11 09:00:03 回复(0)
我觉得C写成 "语句可以都被执行"(选它) 或者 "语句一定会被执行"(不选它) 更好
发表于 2020-08-22 22:16:21 回复(0)
d为什么错了
发表于 2020-08-03 16:41:44 回复(0)

不是选BD吗,我傻了,有谁能说说d为啥错吗?还有c,不异常怎么说

发表于 2020-03-13 15:08:15 回复(0)
try后面要么跟catch,没有catch就必须有finally。。或者3个都有
发表于 2020-03-11 12:35:57 回复(0)
d那里错了
发表于 2020-02-14 09:10:12 回复(0)
c 没抛异常catch怎么会执行,d没错吧
发表于 2020-02-06 16:17:59 回复(0)
刁头像
d的问题在哪里
发表于 2020-02-05 11:09:58 回复(0)
哪来的final?finally吧,c错啊
发表于 2020-01-27 20:57:16 回复(0)
这都是些什么鬼问题
发表于 2020-01-17 20:15:41 回复(0)
我觉得楼上说的对
发表于 2020-01-15 15:38:52 回复(0)
D选项是对的,个人理解
发表于 2020-01-15 10:33:01 回复(1)