gpt4 book ai didi

java - 为什么即使在 System.exit(0) 之后也需要返回;

转载 作者:IT老高 更新时间:2023-10-28 21:07:13 27 4
gpt4 key购买 nike

考虑这个函数:

public boolean foo(){
System.exit(1);
//The lines beyond this will not be read
int bar = 1; //L1
//But the return statement is required for syntactically correct code
return false; //L2

//error here for unreachable code
//int unreachable = 3; //L3

}

谁能解释一下为什么 L1 和 L2 明显不可访问不会发出警告,而 L3 会发出警告。

最佳答案

因为就编译器而言,System.exit()只是另一个方法调用。

它所做的是结束进程的事实只能从实现中找到(这是 native 代码,而不是它有任何区别)。

如果你必须把 System.exit()在你的代码中(通常最好避免它,除非你想返回一个不是 0 的代码),它应该在一个返回 void 的方法中。 , main()例如。这样更好。

关于可达性,解释同理:return是 Java 语言的关键字,因此 IDE 使用的编译器或解析器可以判断 return 之后的代码在理论上是不可能的。要执行的语句。这些规则定义here .

关于java - 为什么即使在 System.exit(0) 之后也需要返回;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487184/

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