我正在创建一个函数,并希望它能够在遇到错误时提供有意义的错误消息。
我想问一下这种情况是否正确使用了自定义异常,如果不是,那么处理它的方法是什么。
示例:
int res = a - b;
if (res < 0)
throw new MyCustomeExp("Invalid input. 'a' should be larger than 'b'.");
为此目的使用自定义异常是否合适?
谢谢。
答案 0 :(得分:0)
你也可以use Trace.Assert()
:
int a = 42
int b = 56
Trace.Assert ( a > b );
...
答案 1 :(得分:0)
在极少数情况下,您应该使用自定义例外。
你的第一个过滤器应该是“我到哪儿去catch (MyCustomExc x)
?”如果答案是“否”,则不需要自定义答案。答案可能有点棘手,具体取决于你记录的方式,你的catch
可能根本不是你的应用程序以外的其他地方的触发器(例如:记录某些异常时发送电子邮件)
第二个过滤器是检查没有合适的和更通用的。如果有标准的 - 使用它。
第三个过滤器 - 你确实需要一个例外,或者应该将某些内容返回给调用者。
如果你仍然想要一个自定义异常,那么考虑它应该继承什么,并确保只和总是使用你的自定义异常来处理它的意图 - don使用一般例外来回。