gpt4 book ai didi

java - finally 添加 return 隐藏异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:38 25 4
gpt4 key购买 nike

我有以下代码

public static void nocatch()
{
try
{
throw new Exception();
}
finally
{

}
}

哪个给出了错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Unhandled exception type CustomException

这是预期的,但是在 finally block 中添加一个 return 语句会使错误消失

public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
return; //makes the error go away!
}
}

谁能解释一下这是怎么回事?为什么错误消失了?

注意:我写这段代码纯粹是为了实验目的!

最佳答案

错误消失了,因为您的代码现在有效了。 (不好,但有效。)

如果 finally block 只有一个直接的 return; 语句,那么整个 try/catch/finally 或 try/finally 语句不能抛出任何异常 - 所以您无需声明它可以抛出异常。

在您的原始代码中,您的 try block 可能(好吧,它)抛出 Exception(或 CustomException 显然是在您的真实代码中)- 这是一个已检查的异常,这意味着您必须捕获它或声明该方法可能会抛出它。

关于java - finally 添加 return 隐藏异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com