小编典典

.NET 中的 ApplicationException 是什么?

all

为了抛出异常,我通常使用内置的异常类,例如ArgumentNullExceptionNotSupportedException.
但是,有时我需要使用自定义异常,在这种情况下我会写:

class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }

等等。然后我在我的代码中抛出并捕获这些。但是今天我遇到了这ApplicationException门课-我应该改用它吗?这是为了什么?

拥有许多具有不同名称的有效相同的异常类似乎效率低下(我通常不需要任何单独的功能)。但我不喜欢捕获泛型ApplicationException并不得不使用额外代码来确定错误是什么的想法。

我的代码应该在哪里ApplicationException适合?


阅读 80

收藏
2022-07-13

共1个答案

小编典典

根据msdn中的备注:

用户应用程序,而不是公共语言运行时,会引发派生自 ApplicationException 类的自定义异常。ApplicationException
类区分应用程序定义的异常与系统定义的异常。

如果您正在设计需要创建自己的异常的应用程序,建议您从 Exception 类派生自定义异常。最初认为自定义异常应该从
ApplicationException 类派生;然而,在实践中,这并没有增加显着的价值。有关详细信息,请参阅处理异常的最佳实践。

Exception. 此外,只要有保证,我认为为您的案例创建新的例外没有问题。如果您遇到框架中已经存在异常的情况,请使用它,否则,请自行处理。

2022-07-13