问题标签 [unreachable-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 覆盖 Object.Equals 并实现 IEquatable<> 时代码无法访问?
我现在有点困惑。据我了解,.NET 运行时将选择最适合给定参数类型的重载方法。所以我认为,在下面的代码片段中,Equals(object obj)
永远不会使用 type 的实例调用该方法Entry
。相反 - 因为存在Equals(Entry other)
具有正确参数类型的方法 - 它将被调用。
如果您实现 IEquatable,您还应该重写 Object.Equals(Object) 和 GetHashCode 的基类实现,以便它们的行为与 IEquatable.Equals 方法的行为一致。如果您确实重写了 Object.Equals(Object),那么在调用类上的静态 Equals(System.Object, System.Object) 方法时也会调用您重写的实现。
我的问题是:
- 是否正确,
Equals(object obj)
永远不会使用 type 的实例调用下面的方法Entry
? return false
那么仅仅在Equals(object obj)
下面的方法中就足够了吗?- 如果是这样,为什么编译器不将下面的注释行识别为无法访问?
我参考的代码:
提前感谢您帮助我!
java - 具有多个 catch 语句的无法访问的代码
为什么第 2 行编译而第 3 行不编译?spit() 会抛出一个已经在第 1 行捕获的 HurtException,因此之后出现的任何已检查异常都应该是无法访问的。如果我删除第 2 行,第 3 行将保持可达。异常不能免除编译时检查。提前感谢您为我澄清这一点。
java - 为什么最后两条指令无法访问代码?
Eclipse 将它们视为无法访问的代码,这显然是一个永远不会被读取的代码,因为没有到达它的路径,但我不明白为什么。说明在 main() 方法中
java - 我的退货声明无法访问
我知道 return 语句之后的任何内容都是无法访问的代码,但我唯一的 return 语句是无法访问的,我不知道为什么。while 循环是这样的,因为我抓住了稻草,我知道它可能不会做我想要它做的事情。myOrders 是一个 ArrayList。
c# - Visual Studio 在“case variable:”之后标记代码无法访问
我有一个包含多种情况的 switch 语句:
我在三个标记的行上收到警告:“检测到无法访问的代码”。案例之后的第一个语句不能无法访问,不是吗?我的问题是:
我的代码有问题,还是警告错误?
如果 VS2015 认为代码片段无法访问,那么当我使用优化进行编译时它会被删除吗?如果没有,我应该忽略这个警告吗?
此警告是否意味着标记的行不可达,或者整个案例不可达?
PS:我知道当前的代码可以在没有 switch 的情况下重写,这将解决问题,但是将来添加的代码将使它 - 非常 - 更容易使用 switch 来维护。
编辑(由 amit dayama 要求):
枚举位于具有包含最初发布代码的方法的类中。
编辑 2:此代码所在方法的第一行是throw new NotImplementedException();
. 显然,这使得 Visual Studio 将方法中每个 switch 中每个 case 的第一行标记为不可访问,但仅此而已,有趣的是,不是异常之后的整个代码。
java - Java中无法访问的代码错误
我正在使用 Java 编写成绩簿程序,但遇到了“无法访问的代码”问题如果有人能告诉我是什么导致了这个问题,我将不胜感激。
它在返回 Grades.get(a); 时给了我错误“无法访问的代码”;
groovy - 为什么此代码在 Groovy 中警告无法访问?
我正在考虑返回一个包含多个目录列表的地图。但第一个给我带来了警告:
“代码无法访问”
为什么?
c# - 检测到无法访问的代码问题(但我需要在某处返回)
问题如下。我正在制作打字游戏的变体,我的问题是我需要遍历我的 char 数组并检查用户是否按下了正确的键(引入等待用户输入的要求)。当按下右键时,我需要 while 循环停止并返回 for 循环并重新开始。但是当我返回时,它会退出两个循环,并且检测到无法访问的代码。
我知道这意味着 for 循环无法完成其余的迭代。那么我在哪里产生/返回?
exception - 捕获块避免编译错误?
我有以下代码,它给了我一个编译错误。
// Program1 -- 编译错误
但是在我添加了一些 catch 块之后,下面的代码就可以工作了。
// 程序 2 - 无编译错误
///////////////////////////////////////// //////////“System.out.println("Hi ");”处的代码无法访问 我想知道,添加不必要的 catch 块如何解决我的问题?
java - 为什么 Java 编译器不会为无法访问的 then 语句生成无法访问的语句错误?
如果我尝试编译
Java 编译器产生一个错误,说Unreachable statement
. 但是,如果我添加另一个“无法访问”(根据我)break
声明并使它:
它编译。为什么它不会产生错误?