学习路径
/
C#
C#
/
教学大纲
/
用户自定义异常
用户

用户自定义异常 属于 C#

1 个练习

关于 用户自定义异常

用户自定义异常是你代码中定义的、派生自System.Exception的任何类。它遵循类继承的所有规则,但除此之外,编译器和语言运行时还会以特殊方式对待这类类,允许在正常控制流之外抛出和捕获它们的实例,正如exceptions练习中所讨论的那样。用户自定义异常可以像运行时异常和 Microsoft 基类库异常那样,以任何方式使用。

这种特殊对待只适用于派生自Exception的类。你不能抛出任何其他类型的实例。

用户自定义异常常用来携带额外信息,比如消息和其他相关数据,供捕获它们的例程使用。这些信息随后可以记录到日志中、报告给用户,或者用于重试操作。System.Exception提供了方便的数据成员和合适的构造函数,用来保存消息和“内部”异常。

按照约定,异常类的名称以“Exception”结尾,例如MyTerribleException。

虽然用用户自定义异常来包装和增强第三方异常是一种常见的模式,但一般的建议是:除了这种用法之外,不要在你自己代码中过于随意地使用它们。这被视为一种反模式。有人对这种观点提出质疑,你可以在这篇 Stack Exchange 帖子中看到争论双方的看法。

这篇文章是用户自定义异常的一个很好的入门介绍。

在创建和抛出异常的指南中,.NET 团队建议用户自定义异常应具备若干个便利构造函数。在大多数情况下,下面所示的组合是合适的。

public class IncompleteExerciseException : System.Exception
{
    public IncompleteExerciseException() : base() { }
    public IncompleteExerciseException(string message) : base(message) { }
    public IncompleteExerciseException(string message, System.Exception inner) : base(message, inner) { }
}
通过 GitHub 编辑 该链接会在新窗口或标签页中打开

学习 用户自定义异常