我会假设大多数用户定义的异常都是针对业务逻辑级别的异常,但是使用用户定义的异常的一些好的理由是什么?有哪些好的例子?
用户定义异常的唯一优势是您可以定义一致的错误消息吗?
可以在异常中编写什么逻辑来使它们真正更有用?
毕竟,你不能这样做:throw new Exception("Some Error Message");
最佳答案
拥有用户定义的异常非常有用,因为它允许您以特定方式处理不同类型的错误。如果 .NET 可以将所有异常都作为带有不同文本消息的 System.Exception 抛出,为什么 .NET 还要定义这么多不同类型的异常? .NET 中存在不同类型异常的原因是您可以捕获各种类型的错误并以不同方式处理它们。这与您定义自己的用户异常的原因相同——这样您就可以根据发生的异常类型提供不同的响应。
您还可以创建包含附加数据的用户定义异常。例如,您可以根据枚举、整数错误代码或任何其他可能对调用程序有用的东西来定义严重性级别,以确定出了什么问题。至于包含在异常中的逻辑,我通常只是尝试报告出了什么问题并将逻辑(如何处理错误)留给调用程序。在某些情况下,我让异常代码在错误超过特定严重级别时自动将错误写入日志文件(例如,抛出警告但仅将严重错误写入日志文件)。
关于c# - 何时使用用户定义的异常和一些好的示例/最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600607/