无法访问的代码编译器错误
2022-09-01 19:06:09
下面的代码给出了编译器错误unreachable statement
public static void main(String[] args) {
return;
System.out.println("unreachable");
}
有时出于测试目的,想要防止调用某个方法,因此快速执行此操作(而不是在使用方法的所有位置注释掉它)是立即从该方法返回,以便该方法不执行任何操作。然后我总是这样做来获得编译器错误是这样的
public static void main(String[] args) {
if (true) {
return;
}
System.out.println("unreachable");
}
我只是好奇,为什么它是编译器错误??它会以某种方式破坏Java字节码,是为了保护程序员还是别的什么?
另外(这对我来说更有趣),如果将java编译为字节码可以进行任何优化(或者即使它没有),那么为什么它不会检测到第二个示例中公然无法访问的代码?编译器伪代码对于检查语句是否不可访问是什么?