【发布时间】:2017-02-04 08:50:08
【问题描述】:
要抛出异常,在我使用这种方式的那一刻?
throw new ArgumentException("My message");
但是如果一个方法可以出于多种原因抛出 ArgumentException,我想知道该异常的确切原因。
我知道我可以把它用掉:
throw new ArgumentException("MyParamName", "MyMessage");
但是,如果同一个参数可能有很多原因引发 ArgumentException,那么这种情况并没有太大帮助。比如我在一个方法中有一个参数,有两个属性,一个要大于0,一个要小于0。我想发一个错误码,第一个参数不大于0的时候是001和002当第二个参数不小于0时。这样。但是不知道能不能在异常中设置错误码。
我可以这样用:
throw new ArgumentException("My message " + "(001)");
我可以在消息末尾添加错误代码,但我必须搜索子字符串 (001)。但我想知道是否会有更好的选择。
另一种方法是创建我自己的异常,但如果我有一个 ArgumentException,我认为创建一个新异常只是为了拥有错误代码的属性并包含原始异常,开销很小。
所以我的问题是,最好的选择是什么?还有其他解决方案吗?
谢谢。
【问题讨论】:
标签: c# .net exception exception-handling