我在共享组件中有以下代码:
public class MyClass {
public void DoWork() {
// ...
if (someConditionWhichShouldAlwaysBeFalse) {
throw new Exception("If we get here, there must be a bug in MyClass.");
}
}
}
我想知道 .NET 中是否有合适的内置异常类型表明:
MyClass
,并且错误完全是由MyClass
在某种程度上,我只是想要一个更强大的、基于异常的版本
Debug.Assert()
。目的完全是为了捕获代码中的错误,并且我希望调用者不要捕获异常(日志记录和重新抛出除外)。
框架中是否有适合此用途的内置类型?我见过人们有时使用
InvalidOperationException
但我的理解是 IOE 应该用于与对象状态不一致的调用者输入(即它本质上仍然是调用者错误)。
在我看来,UnreachableException就是您正在寻找的。