为什么在一个示例中需要throws关键字,而在另一个示例中却不需要?

时间:2019-12-02 17:52:05

标签: java exception

在代码审查期间,我提出了以下问题,我不知道为什么Java不会在我的代码中抱怨未处理的异常。这是有问题的代码,方法签名中不需要“引发异常”:

private void foo() {
    try {
        String s = "Hello, world.";
        return;
    } catch (Exception ex) {
        throw ex;
    }
}

除非我在方法签名中声明“ throw Exception”,否则这里的代码将显示未处理的异常消息。

private void bar() throws Exception {
    try {
        String s = "Hello, world.";
        return;
    } catch (Exception ex) {
        throw new Exception();
    }
}

为什么bar()在方法签名中需要throws关键字,而foo()却不需要?它们都抛出Exception,并且都由catch子句“处理”。

****编辑****

指向其他问题的链接对我仍然没有帮助。有人可以解释这个答案与这个答案有什么关系吗? 谢谢。

0 个答案:

没有答案