📜  Java |异常处理问题7

📅  最后修改于: 2021-06-29 10:54:55             🧑  作者: Mango

预测以下程序的输出。

class Test
{
    String str = "a";
  
    void A()
    {
        try
        {
            str +="b";
            B();
        }
        catch (Exception e)
        {
            str += "c";
        }
    }
  
    void B() throws Exception
    {
        try
        {
            str += "d";
            C();
        }
        catch(Exception e)
        {
            throw new Exception();
        }
        finally
        {
            str += "e";
        }
  
        str += "f";
  
    }
      
    void C() throws Exception
    {
        throw new Exception();
    }
  
    void display()
    {
        System.out.println(str);
    }
  
    public static void main(String[] args)
    {
        Test object = new Test();
        object.A();
        object.display();
    }
  
}

(A)绝对
(B)十月
(C) abdefc答案: (B)
说明: “ throw”关键字用于显式抛出异常。
即使发生异常,finally块也总是执行。
调用方法C()会引发异常。因此,控制进入方法B()的catch块,该方法再次引发异常。因此,控制进入方法A()的catch块中。
这个问题的测验
如果您在以上帖子中发现任何错误,请在下面发表评论