Jef*_*tin 1 c# compact-framework coding-style exception .net-3.5
我遇到过一种情况,由于我调用的其他一些代码区域无法复制Dictionary<TKey, TValue>它返回的内容,因此会出现并发问题:Dictionary似乎包含非法的空键.
我已经修复了底层错误,但为了帮助识别这个问题,如果它将来再次出现,我会添加一些代码,在循环中显式检查null键,处理返回的字典并在事情发生之前抛出进一步.我不确定要抛出哪个异常类,或者如果我定义一个新类,我要确定哪个异类.
是否有任何来电者都期待这个例外?任何调用者都可以处理异常吗?任何呼叫者都可以从异常中恢复吗?在投掷之后你会想象会发生什么?
在这种情况下,数据结构被任意破坏,几乎没有任何不变量被认为是真的.事实上,你仍在运行代码是一个奇迹.除非你有充分的理由不这样做,否则我会倾向于记录诊断错误所需的任何信息并快速失败.抛出异常并运行finally块不太可能做得更好.
当然,最终你所做的一切都是权宜之计.修复破坏数据的错误.
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |