以下是我的代码,当我评论语句-2时,它会遵守罚款,但当我取消注释时,它会给出编译时错误"Unreachable Code"
。
我理解为什么我在取消注释后会出现错误,但我的问题是,即使我发表评论仍然bad()
无法访问,因为我throwing
一个例外是捕获然后为什么它不给它的错误?
class Varr
{
public static void main(String[] args) throws Exception
{
System.out.println("Main");
try {
good();
} catch (Exception e) {
System.out.println("Main catch");
//**Statement 1**
throw new RuntimeException("RE");
} finally {
System.out.println("Main Finally");
// **Statement 2**
throw new RuntimeException("RE2");
}
bad();
}
}
答案 0 :(得分:4)
但我的问题是,即使我评论它仍然是坏()是 无法访问,因为我抛出一个例外是捕获然后为什么它不是 给它错误?
因为执行无需输入catch
声明
假设good()
没有抛出任何异常,因此您不会输入catch
,因此会执行bad()
:
public static void main(String[] args) throws Exception
{
System.out.println("Main");
try {
good(); // doesn't throw an exception
} catch (Exception e) {
System.out.println("Main catch");
throw new RuntimeException("RE");
}
bad(); // execution goes from good() to here
}