109得票9回答
无法到达的代码,但可以通过异常到达

这段代码是应用程序的一部分,可以读取和写入ODBC连接的数据库。它在数据库中创建一条记录,然后检查是否已成功创建记录,并返回true。 我对控制流的理解如下: command.ExecuteNonQuery() 的文档说明,在“对象的当前状态无效时调用方法”时会引发Invalid​Oper...

92得票8回答
分支语句中含有未定义行为的代码可以被认为是不可达的并进行优化成死代码吗?

考虑以下陈述:*((char*)NULL) = 0; //undefined behavior 这明显涉及未定义的行为。在给定程序中存在这样的语句是否意味着整个程序是未定义的,还是只有控制流程到达此语句时行为变得未定义? 如果用户从未输入数字3,那么下面的程序是否定义良好?while (tr...

59得票1回答
为什么简单布尔值的if/else if/else不会报“无法访问的代码”错误

为什么这段代码没有出现“无法访问的代码”错误?因为布尔值只能是真或假。 这段代码为什么没有出现“无法访问的代码”错误?因为布尔值只能为真或假。public static void main(String args[]) { boolean a = false; if (a ...

59得票5回答
为什么Java编译器对于不可达的then语句不会产生不可达语句错误?

如果我尝试编译for(;;) { } System.out.println("End"); Java编译器会产生一个错误,指出“不可达语句”。但是,如果我添加另一个(在我看来)“不可达”的break语句,并将其改为: Java编译器会产生一个错误,指出“不可达语句”。但是,如果我再添加一个...

54得票8回答
Java下Eclipse中的不可访问代码错误与死代码警告有何区别?

有没有人知道为什么:public void foo() { System.out.println("Hello"); return; System.out.println("World!"); } 在Eclipse下将报告为"不可到达的错误(unreachable er...

49得票4回答
为什么这段代码不会被执行?

我发现了一个问题,我有一些代码认为是不可达的,但并未被检测到。无论是编译器还是Visual Studio都没有发出警告。 请考虑以下代码:enum Foo { A, B, C } class Bar { public Foo type; } static class Program { ...

30得票3回答
if(false)与while(false):不可到达的代码与死代码

我在Eclipse中尝试了以下代码: if (false) {}: 警告'dead code' while (false) {}: 编译错误'unreachable code' 我想知道这种差异是否有实际的“原因”。我已经发现了这篇文章... Unreachable code com...

26得票5回答
模拟GCC的 __builtin_unreachable?

我收到了很多关于开关仅部分覆盖枚举范围的警告。因此,我想为所有这些开关设置一个“默认”并在该情况下放置__builtin_unreachable (GCC内置),以便编译器知道该情况是不可达的。 然而,我得知GCC4.3尚不支持该内置功能。有没有好的方法来模拟该功能?我考虑过将空指针解除引用...

24得票4回答
如何提示GCC在编译时某行代码应该是不可达的?

编译器通常会提供开关以警告代码不可达。我还见过一些库的宏,提供对于不可达代码的断言。 是否有提示,例如通过pragma或内置项,可以传递给GCC(或任何其他编译器),在编译期间警告或错误,如果确定某行预期为不可达,则可以到达? 这里是一个示例: if (!conf->dev...

22得票9回答
当我被迫编写无法到达的代码时,我该怎么办?

我有这段简单的代码:public static int GetInt(int number) { int[] ints = new int[]{ 3, 7, 9, int.MaxValue }; foreach (int i in ints) if (numbe...