选择哪个Exception类

时间:2010-03-30 06:57:35

标签: .net exception

假设你想像这样抛出Exception

'无法分配带有提供的ID的项目。'

并且您不想编写您的自定义Exception类。你会用什么预定义Exception课程? (我说的是所有继承自Exception

的类

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

为什么不能分配项目?是因为提供的ID(可能是作为参数)是不合适的?如果是这样,它应该是ArgumentException。如果是因为项目的状态不适合分配,那么InvalidOperationException会更好。如果是其他内容,请提供更多详细信息。

当然,可能没有任何合适的东西。有时最好的方法就是编写自己的异常类。

答案 2 :(得分:2)

听起来像InvalidOperationException给我......

答案 3 :(得分:0)

我的实践(在Java世界中)是区分两种情况:

  • 你让我做一些愚蠢的事情 - InvalidOperationException或InvalidArgument适用于此

  • 我暂时被打破了,如果再试一次可能会有效

第二种情况我看不到我的TransientException的.NET等价物。我个人会为SystemException扩展一个新的异常类。