.NET 中是否有任何内置的异常类型用于愚蠢的异常?

问题描述 投票:0回答:1

我在共享组件中有以下代码:

public class MyClass {

    public void DoWork() {

        // ...

        if (someConditionWhichShouldAlwaysBeFalse) {
            throw new Exception("If we get here, there must be a bug in MyClass.");
        }        
    }    
}

我想知道 .NET 中是否有合适的内置异常类型表明:

  1. 这个异常是愚蠢的,即它必须表明我的代码中存在错误
  2. 并非非法来电输入造成的。调用者完全合法地使用了
    MyClass
    ,并且错误完全是由
    MyClass
  3. 内的错误引起的

在某种程度上,我只是想要一个更强大的、基于异常的版本

Debug.Assert()
。目的完全是为了捕获代码中的错误,并且我希望调用者不要捕获异常(日志记录和重新抛出除外)。

框架中是否有适合此用途的内置类型?我见过人们有时使用

InvalidOperationException
但我的理解是 IOE 应该用于与对象状态不一致的调用者输入(即它本质上仍然是调用者错误)。

c# .net exception
1个回答
0
投票

在我看来,UnreachableException就是您正在寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.