Java代码中的顺序抛出声明
“大家好!我有一个关于Java中异常处理的问题。如果有顺序的“抛出”声明,首先启动什么?为什么?下面是这样一个方法的示例:Java代码中的顺序抛出声明,java,exception,exception-handling,Java,Exception,Exception Handling,“大家好!我有一个关于Java中异常处理的问题。如果有顺序的“抛出”声明,首先启动什么?为什么?下面是这样一个方法的示例: public void myMethod(boolean ok) { if (ok) { // do something... } else { throw new myRuntimeException(); throw new RuntimeException (); } } 提前谢谢 大多数编译器
public void myMethod(boolean ok) {
if (ok) {
// do something...
} else {
throw new myRuntimeException();
throw new RuntimeException ();
}
}
提前谢谢 大多数编译器会将第二个“抛出”标记为错误:“无法访问的代码”-因为它永远不会执行
这就像在返回后编写代码(除了finally块)——它永远不会被执行——因此是非法的。一旦抛出
,执行流程就会中断,并发生以下情况:
- 如果您在
try
块中,它将转到相应的catch
- 如果不是,则可丢弃(在您的情况下是例外)将向上传递到调用链,留下
myMethod()
并转到调用它的方法
重复此过程,直到到达try
块或调用堆栈顶部,在这种情况下,程序将终止
因此,只抛出第一个异常,抛出新的RuntimeException()代码>语句永远不会到达。您的方法以第一个throw
s子句结束。但这不是火箭科学,只是尝试一下。这不是有效的Java代码。它不编译.make。因此,询问它如何执行是徒劳的。在Java中,编写无法访问的代码是一个错误。