首页 > 试题广场 >

给定以下JAVA代码,这段代码便已运行后输出的结果是()

[单选题]

给定以下JAVA代码,这段代码运行后输出的结果是()

public class Test
{  
    public static int aMethod(int i)throws Exception
    {
        try{
            return i/10;
        }
        catch (Exception ex)
        {
            throw new Exception("exception in a aMethod");
        }finally{
      System.out.printf("finally");
        }
} 
    public static void main(String[] args){
        try
        {
            aMethod(0);
        }
        catch (Exception ex)
        {
            System.out.printf("exception in main");
        }
        System.out.printf("finished");
    }
}
  • exception in main finished
  • finallyfinished
  • exception in main finally
  • finally exception in main finally
还不定项选择,,差点被骗了
发表于 2020-08-11 09:46:53 回复(0)
i在上面,不在下面。。。审题要仔细
发表于 2016-12-13 10:34:56 回复(33)
进入main方法->try->aMethod(0)->return 0/10;这里注意并没有出现异常所以执行finally打印finally,返回的时候也并没有异常,所以不会打印exception in main然后按照顺序执行然后打印finished,希望被采纳。
编辑于 2017-03-26 20:55:22 回复(4)
本题考的不仅仅是审题,而且是try......catch......finally块的关系,以及return与finally的执行关系。
具体执行过程:
1、先进入main函数,进入try块调用aMethod(0)方法;
2、执行aMethod()方法的try块,i/10可以正确执行,故并未抛出异常,catch块不执行,而需要执行finally(该块任何时候都要执行),故打印finally;
3、回到main函数,由于aMethod()调用成功,因此main函数的catch块同样不执行,顺序执行finally块,打印finished
因此,最终的输出结果就是:finally finished
发表于 2018-01-30 09:13:29 回复(2)
可恶 我知道B是对的 但是他给了我一个多选 我就觉得应该是多选 然后我就选了AB...
发表于 2019-04-10 16:55:09 回复(3)
这题考的是审题吗?
发表于 2017-02-09 15:06:05 回复(5)
try{
    code
    more code
}catch(ExceptionType e){
    handler for this tyep
}finally{
    
}

(1)如果try快中抛出了一个在catch子句中说明的异常类,那么程序将跳过try语句的其余代码,执行catch子句中的处理器代码。
(2)如果方法中的任何代码抛出了一个在catch子句中都有声明的异常类型,那么方***立即退出。
(3)无论是否抛出异常finally语句块最终都会执行。
(4)当try块中包含return语句时,在执行return语句前会先执行finally块,如果finally块中也有return语句,这个return语句的返回值会将try块中return语句的返回值覆盖掉。
(5)如果try块中抛出异常,finally中也抛出相同类型异常,那么原始异常将会丢失,转而抛出finally中的异常

原文连接:https://blog.nowcoder.net/n/86f432128b9344d8bb353acd34c83966

编辑于 2020-02-28 10:38:51 回复(0)
首先我们要确定的一点就是无论怎样都要执行finally,所以我首先就可以排除AD,再向下看,i这次在分子的位置,这在java中是被允许的,所以不用try块中的catch。程序可以完整的执行下来,可以确定选C。 其实这里我有点疑问,为什么这些答案里面没有return返回的数据,要是再加上这个,这个题真的就非常完美。不过这也是我的一点拙见,不足的,忘各位题友们指出。
发表于 2016-12-27 23:56:17 回复(2)
i 是分子,不会引发除零异常,因而会直接执行try和finally,输出的是答案B.aMethod方法的返回值没有赋给任何输出流,因而不会输出返回值
发表于 2016-12-28 20:55:49 回复(2)
<p>我是分母,你是分子</p><p>你对我的爱就算到零,这个世界依旧运转</p><p><br></p><p>但是我的爱一旦消失,我们的世界就会崩塌</p><p>所以啊。只要世界运转正常</p><p>我就依旧爱你</p>
发表于 2020-05-09 09:33:00 回复(0)
为什么是不定项选择题?
发表于 2019-05-22 19:57:24 回复(2)
本题考的不仅仅是审题,而且是try......catch......finally块的关系,以及return与finally的执行关系。 具体执行过程: 1、先进入main函数,进入try块调用aMethod(0)方法; 2、执行aMethod()方法的try块,i/10可以正确执行,故并未抛出异常,catch块不执行,而需要执行finally(该块任何时候都要执行),故打印finally; 3、回到main函数,由于aMethod()调用成功,因此main函数的catch块同样不执行,顺序执行finally块,打印finished 因此,最终的输出结果就是:finally finished
发表于 2021-09-28 17:52:58 回复(0)
做多选题心理学要过关,,
发表于 2022-03-25 21:33:07 回复(0)

考察异常

try——catch——finally
try抛异常,catch捕捉异常,finally一定会执行

  1. 先进入main函数,进入try块调用aMethod(0)方法;
  2. 执行aMethod()方法的try块,i/10可以正确执行,故并未抛出异常,catch块不执行,而需要执行finally(该块任何时候都要执行),故打印finally;
  3. 回到main函数,try没有异常,因此main函数的catch块同样不执行,执行finally块,打印finished
    因此,最终的输出结果就是:finally finished
发表于 2021-06-08 19:54:08 回复(0)
如果换成是10/0的话,结果会是finally exception in main finished,因为外抛异常并且处理了,也不会影响后面的执行
发表于 2020-09-12 09:09:58 回复(0)
上了鬼子的当了,0放上边没问题,我这个脑子
发表于 2020-09-01 19:18:12 回复(0)

默认除0了,马丹,以为答案错了!

发表于 2018-08-13 15:37:31 回复(0)
无聊。。。     我以为题写错了 自动脑补的
发表于 2017-06-28 17:52:39 回复(0)
难道输出的不是finally exception in main finished吗
发表于 2017-03-25 18:21:10 回复(3)
我就想看看有多少人选了多选
发表于 2022-02-24 15:28:27 回复(0)