eri*_*len 20 .net c# exception
当程序达到我"知道"不会发生的逻辑状态时,我应该使用哪个例外,如果确实如此,那么事情就非常糟糕.
例如:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
很明显,ArgumentException在这里是一个长镜头,因为x的无效值可能来自Whatever()中的错误,或者任何参数和/或当前实例状态的无效组合.
我正在寻找诸如InvalidProgramStateException,InternalErrorException或类似的东西.
当然我可以定义自己的,但我想知道框架中是否有合适的例外.
编辑:删除简单的示例代码以减少ArgumentException答案的数量.
那InvalidOperationException呢?
| 归档时间: |
|
| 查看次数: |
4978 次 |
| 最近记录: |