c# - 何时使用用户定义的异常和一些好的示例/最佳实践?

标签 c# asp.net exception user-defined

我会假设大多数用户定义的异常都是针对业务逻辑级别的异常,但是使用用户定义的异常的一些好的理由是什么?有哪些好的例子?

用户定义异常的唯一优势是您可以定义一致的错误消息吗?

可以在异常中编写什么逻辑来使它们真正更有用?

毕竟,你不能这样做:throw new Exception("Some Error Message");

最佳答案

拥有用户定义的异常非常有用,因为它允许您以特定方式处理不同类型的错误。如果 .NET 可以将所有异常都作为带有不同文本消息的 System.Exception 抛出,为什么 .NET 还要定义这么多不同类型的异常? .NET 中存在不同类型异常的原因是您可以捕获各种类型的错误并以不同方式处理它们。这与您定义自己的用户异常的原因相同——这样您就可以根据发生的异常类型提供不同的响应。

您还可以创建包含附加数据的用户定义异常。例如,您可以根据枚举、整数错误代码或任何其他可能对调用程序有用的东西来定义严重性级别,以确定出了什么问题。至于包含在异常中的逻辑,我通常只是尝试报告出了什么问题并将逻辑(如何处理错误)留给调用程序。在某些情况下,我让异常代码在错误超过特定严重级别时自动将错误写入日志文件(例如,抛出警告但仅将严重错误写入日志文件)。

关于c# - 何时使用用户定义的异常和一些好的示例/最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600607/

相关文章:

c# - Autofac:如何将 IPrincipal 注入(inject) Repository 层

c# - var 关键字在 LINQPad 4 中不起作用

javascript - Firefox 不显示自定义错误消息

python - python中的异常传播

c# - ASP.net webforms 存储过程中的异步调用

c# - 如何更改 C# 代码中的输入语言?

javascript - 如何使用 SignalR 向特定客户端发送消息

c# - 自动将文本框加载到 asp.net detailsview

c# - 仅在特定日期和时间解雇一次工作

c# - ASP.NET 4.5 从客户端检测到具有潜在危险的 Request.Form 值