当程序达到我“知道”不会发生的逻辑状态时,我应该使用哪个异常?如果发生了,那就是非常糟糕的事情?
例如:
int SomeFunction(int arg) {
SomeEnum x = Whatever(arg, somePrivateMember);
switch (x) {
case SomeEnum.Value1:
return SomeFunction1();
case SomeEnum.Value1:
return SomeFunction2();
default:
throw new WhatTypeToThrow();
}
}
显然,ArgumentException 在这里是不可能的,因为 x 的无效值可能来自 Whatever() 中的错误,或者任何参数和/或当前实例状态的无效组合。
我正在寻找诸如 InvalidProgramStateException、InternalErrorException 或类似的东西。
当然我可以自己定义,但我想知道框架中是否有合适的异常。
编辑:删除了简单示例代码以减少 ArgumentException 答案的数量。
最佳答案
InvalidOperationException 呢?
关于c# - 我应该抛出哪个异常来表示程序中的内部错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313906/