何时/为何使用自定义异常

时间:2010-09-05 21:48:39

标签: language-agnostic exception-handling

我在这个论坛上读了一个关于这个主题的帖子,其中列出了使用自定义异常的一些原因,但没有一个真正看起来有很强的理由(现在不记得原因)。

那你为什么要使用自定义的除外?特别是,我从来没有理解使用标准或自定义异常来表示购物篮是空的决策过程(我认为自定义的一个用作空集合并不例外,这是一个业务流程的事情)。但是,需要进一步澄清。

由于

1 个答案:

答案 0 :(得分:4)

这是我的看法:

  • 如果任何标准异常与异常情况不匹配,请创建自定义异常
  • 如果您需要传递给例外的其他信息,请创建自定义例外
  • 如果拥有自己的异常类是有意义的,那么创建一个自定义异常(也就是说,其他开发人员可以从中捕获它)。

关于像null参数这样的东西 - 我永远不会使用自定义异常。 NullArgumentException(.NET)/ IllegalArgumentException(Java)非常令人满意。

Jared Par有一篇博客文章,here