'大家好!我有一个关于Java中的异常处理的问题。如果有连续的“抛出”声明,为什么会首先启动什么?以下是类似方法的示例:
public void myMethod(boolean ok) {
if (ok) {
// do something...
} else {
throw new myRuntimeException();
throw new RuntimeException ();
}
}
提前致谢!
答案 0 :(得分:0)
大多数编译器会将第二个“throw”标记为错误:“无法访问的代码” - 因为它永远不会被执行。
这就像在返回后编写代码(除了finally块) - 它永远不会被执行 - 因此是非法的。
答案 1 :(得分:0)
一旦throw
,执行流程就会中断,并发生以下情况:
try
区域内,则会转到相应的catch
myMethod()
并转到调用它的方法重复此过程,直到您到达try
块或调用堆栈的顶部,在这种情况下,您的程序将终止。
因此,只抛出第一个异常,永远不会达到throw new RuntimeException ();
语句。