Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

2个月前关闭。



Improve this question




这是一个语言设计问题:

您是否认为无法访问的代码(通常在编程语言中)应该引发警告(即“报告问题并且仍然可以编译”)或错误(“拒绝编译”)?

我个人强烈认为这应该是一个错误:如果程序员编写了一段代码,那么在某些情况下应该总是实际运行它。但是,例如C#编译器似乎对此表示不同,仅报告警告。

注意:我意识到良好的死代码检测是一个非常困难的问题,但这不是此问题的重点。

以下是一些代码段中某些语句显然无法访问的示例:
return;
foo();

-
throw new Exception();
foo();

-
if (...) {
  return;
} else {
  throw new Exception();
}
foo();

最佳答案

一般来说,这应该是一个错误。

但是我想到一个异常(exception):

if (false) {
  doStuffThatITemporarilyDisabled();
}

如果您的编译器拒绝编译此类代码,则某些开发人员可能会抱怨。

10-07 14:27