【发布时间】:2014-01-24 15:25:07
【问题描述】:
我有这个非常简单的代码sn-p:
static String getInput() throws IOException{
if(in.ready()){
return in.readLine().trim();
}
System.err.println("Please provide more input in order to execute the program.");
System.exit(0);
return "";
}
据我所知,JVM 不可能在代码末尾执行 return 语句。但是如果我注释掉这一行,java 会抱怨缺少 return 语句。为什么 JVM 不能识别 System.exit(0) 不允许执行任何其他代码,但如果 return 不允许执行代码,则会抱怨无法访问的语句? 我认为最后的 return 语句是多余的,可能会让其他开发人员感到困惑,那么为什么 java 不让我摆脱它呢?
【问题讨论】:
-
System.exit(0);就编译器而言只是一种方法,SecurityManager 可以阻止它做任何事情。例如,如果您在应用程序服务器中调用它,您不希望它杀死所有应用程序。
标签: java jvm unreachable-code