在代码审查期间,我提出了以下问题,我不知道为什么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子句“处理”。
****编辑****
指向其他问题的链接对我仍然没有帮助。有人可以解释这个答案与这个答案有什么关系吗? 谢谢。