正确使用自定义例外

时间:2015-06-08 14:35:41

标签: c# exception exception-handling

我正在创建一个函数,并希望它能够在遇到错误时提供有意义的错误消息。

我想问一下这种情况是否正确使用了自定义异常,如果不是,那么处理它的方法是什么。

示例:

int res = a - b;

if (res < 0)
throw new MyCustomeExp("Invalid input. 'a' should be larger than 'b'.");

为此目的使用自定义异常是否合适?

谢谢。

2 个答案:

答案 0 :(得分:0)

你也可以use Trace.Assert()

int a = 42
int b = 56
Trace.Assert ( a > b );
...

答案 1 :(得分:0)

在极少数情况下,您应该使用自定义例外。

你的第一个过滤器应该是“我到哪儿去catch (MyCustomExc x)?”如果答案是“否”,则不需要自定义答案。答案可能有点棘手,具体取决于你记录的方式,你的catch可能根本不是你的应用程序以外的其他地方的触发器(例如:记录某些异常时发送电子邮件)

第二个过滤器是检查没有合适的和更通用的。如果有标准的 - 使用它。

第三个过滤器 - 你确实需要一个例外,或者应该将某些内容返回给调用者。

如果你仍然想要一个自定义异常,那么考虑它应该继承什么,并确保总是使用你的自定义异常来处理它的意图 - don使用一般例外来回。