您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

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

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

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

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

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

java 2022/1/1 18:22:19 有493人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶