Java为什么会有“无法到达的语句”编译器错误?

Java为什么会有“无法到达的语句”编译器错误?,第1张

Java为什么会有“无法到达的语句”编译器错误

因为无法到达的代码对编译器毫无意义。尽管使代码对人有意义不仅比使代码对编译器有意义更困难,但编译器是代码的基本使用者。Java的设计者认为对编译器没有意义的代码是错误。他们的立场是,如果你有一些无法访问的代码,那么你犯了一个错误,需要修复。

这里有一个类似的问题:无法访问的代码:错误还是警告?,其中作者说:“我个人强烈认为这应该是一个错误:如果程序员编写一段代码,那么在某些情况下应该始终实际运行它。” 显然,Java的语言设计师对此表示赞同。

无法访问的代码是否应该阻止编译是一个永远不会达成共识的问题。但这就是Java设计人员这样做的原因。

有很多评论的人指出,Java无法阻止编译的代码种类很多。如果我正确理解了Gödel的后果,那么没有编译器可以捕获所有无法访问的代码类。

单元测试无法捕获每个错误。我们不以此为理由反对它们的价值。同样,编译器无法捕获所有有问题的代码,但是对于编译器而言,它可以防止编译错误代码,这仍然很有价值。

Java语言设计人员将无法访问的代码视为错误。因此,在可能的情况下防止其编译是合理的。

(在否决票之前:问题不是Java是否应具有不可到达的语句编译器错误。问题是Java 为什么会有不可达的语句编译器错误。请不要仅仅因为你认为Java做出了错误的设计决定就对我进行否决。)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5146201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存