【发布时间】:2014-04-22 14:47:03
【问题描述】:
我遇到this MSDN page 说:
不要故意从您自己的源代码中抛出Exception、SystemException、NullReferenceException 或IndexOutOfRangeException。
不幸的是,它懒得解释原因。我可以猜到原因,但我希望在这个主题上更权威的人可以提供他们的见解。
前两个有一些明显的意义,但后两个似乎是你想要雇用的(事实上,我有)。
此外,这些是我们应该避免的唯一例外吗?如果还有其他的,它们是什么,为什么也应该避免它们?
【问题讨论】:
-
来自msdn.microsoft.com/en-us/library/ms182338.aspx:如果你抛出一个通用的异常类型,例如库或框架中的Exception或SystemException,它会强制消费者捕获所有异常,包括他们不知道如何捕获的未知异常处理。
-
为什么要抛出 NullReferenceException?
-
@Rik:类似于
NullArgumentException,有些人可能会将两者混淆。 -
@Rik 扩展方法,根据我的回答
-
另一个你不应该扔的是
ApplicationException
标签: c# exception-handling