【问题标题】:Should custom exception classes derive from System.ApplicationException?自定义异常类是否应该从 System.ApplicationException 派生?
【发布时间】:2021-09-09 12:01:08
【问题描述】:

https://docs.microsoft.com/en-us/dotnet/api/system.applicationexception?view=net-5.0 表示“ApplicationException 类”用作应用程序定义异常的基类。但在https://docs.microsoft.com/en-us/dotnet/standard/exceptions/how-to-create-user-defined-exceptions 的示例中,自定义异常类派生自“异常”基类。

【问题讨论】:

标签: c# exception


【解决方案1】:

嗯,MSDN 说的很清楚

重要

您应该从Exception 类派生自定义异常,而不是 比ApplicationException 类。你不应该扔一个 ApplicationException 代码中的异常,您不应该捕获 ApplicationException 异常,除非您打算重新抛出 原始异常。

所以对于自定义异常,我们应该使用Exception 作为基类

【讨论】:

  • 当我阅读时,我将应用程序定义的异常和自定义定义的异常视为相同的东西。那么什么是应用程序定义的异常。
  • Clowo:“最初认为自定义异常应该从 ApplicationException 类派生;但在实践中并未发现这会增加显着价值。” stackoverflow.com/questions/5685923/…
【解决方案2】:

从根本上说,这并不重要。如果您的异常类型在从系统提供的异常之一派生时更符合逻辑,那么作为用户,我更喜欢这种实现。想想当你的代码的用户捕捉到异常时会发生什么,并做出相应的计划。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2019-06-24
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多