gpt4 book ai didi

c# - 从枚举中获取异常

转载 作者:行者123 更新时间:2023-11-30 21:12:46 25 4
gpt4 key购买 nike

我收到了一个错误日志,显示以下代码在集合中引发了异常

  public double Value {
get {
switch (DefinedUnits.Distance) {
case DistanceUnits.Feet: { return Feet; }
case DistanceUnits.Meters: { return Meters; }
case DistanceUnits.NM: { return NauticalMiles; }
default: { throw new Exception("Invalid Distance Unit Specified"); }
}
}
set {
switch (DefinedUnits.Distance) {
case DistanceUnits.Feet: { Feet = value; break; }
case DistanceUnits.Meters: { Meters = value; break; }
case DistanceUnits.NM: { NauticalMiles = value; break; }
default: { throw new Exception("Invalid Distance Unit Specified"); }
}
}
}

DefinedUnits.Distance 是一个枚举:

public enum DistanceUnits {
Meters,
Feet,
NM
}

我无法在我的代码中看到可以发送其他内容。我没有将此枚举视为整数的地方,因此可以传递错误的值。用户无法告诉我他在做什么。或者更确切地说,他告诉我他正在做一些不能称之为这个的事情。

是否有合理的解释说明为什么会发生这种情况以及我该如何阻止它?

谢谢

最佳答案

也许这个值在设置之前就被获取了,留下了一个无效的默认值? (诚​​然,如果您没有设置任何相应的整数,Meters 应该对应于 0...)您应该将代码调整为:

如果你有堆栈跟踪,你至少应该能够看到是 getter 还是 setter 抛出了异常......

关于c# - 从枚举中获取异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com