提问人:Martien ANGEL 提问时间:1/8/2023 最后编辑:Federico klez CullocaMartien ANGEL 更新时间:1/8/2023 访问量:77
try/catch/finally System.exit(0) 异常
try/catch/finally Exception with System.exit(0)
问:
try {
fruit fr = (fruit) p;
System.exit(0);
} catch (Exception e) {
System.out.println("not the right object");
} finally {
System.out.println("finablock");
}
为什么在这种情况下没有终止操作,而我从 和 块中获得了两个显示器?System.exit(0)
catch
finally
答:
2赞
Turing85
1/8/2023
#1
如果抛出 an,则执行立即从周围的块返回,(重新)抛出 said。如果在遍历调用堆栈期间找到匹配的 -block,则执行此 -block,从这里开始,执行将恢复正常。调用堆栈上的所有 -block 都会按照遇到的顺序执行。Exception
Exception
catch
catch
finally
例如,这意味着如果
fruit fr = (fruit) p;
抛出一个 ,则不执行,但执行继续与 -块的主体一起执行。并且由于 的语义,此块在方法返回之前执行。Exception
System.exit(0);
catch (Exception e)
finally
关于守则的一些评论:
- java 中的类名应该写在
UpperCamelCase
(fruit fr = ...
->Fruit fr = ...
) - 如果我们想异常终止应用程序,那么我们应该设置一个值,因为这是程序的退出代码。应用程序正常终止的信号值(很可能不为 true)
System.exit(...)
!= 0
0
评论