C# 异常处理-自定义异常

原文链接:https://www.cnblogs.com/ysmc/p/18802668

在C#中,异常处理是通过try, catch, finally和throw语句来实现的。如果你想要创建一个特定于你的应用程序的异常情况,你可以定义一个自定义异常。自定义异常允许你添加特定的属性和方法来处理特定的错误情况。

要创建一个自定义异常,你需要定义一个类并使其继承自 System.Exception 类或者任何其他现有的异常类。通常,你至少应该实现以下四个构造函数:

  1. 无参数构造函数。
  2. 带有一个字符串参数的构造函数,该字符串表示错误消息。
  3. 带有一个字符串参数和一个异常参数的构造函数,该异常表示内部异常(即导致当前异常的异常)。
  4. 一个带有序列化数据的构造函数,用于在远程处理过程中支持异常的序列化。

下面是一个自定义异常的例子:

 1 using System;
 2 
 3 // 自定义异常类
 4 public class MyCustomException : Exception
 5 {
 6     // 无参数构造函数
 7     public MyCustomException() : base("My custom exception has occurred.")
 8     {
 9     }
10 
11     // 带有错误消息的构造函数
12     public MyCustomException(string message) : base(message)
13     {
14     }
15 
16     // 带有错误消息和内部异常的构造函数
17     public MyCustomException(string message, Exception innerException) : base(message, innerException)
18     {
19     }
20 
21     // 用于序列化的构造函数,必须调用基类的构造函数
22     protected MyCustomException(System.Runtime.Serialization.SerializationInfo info,
23         System.Runtime.Serialization.StreamingContext context) : base(info, context)
24     {
25     }
26 
27     // 你可以添加额外的属性和方法
28 }
使用自定义异常的示例
 1 class Program
 2 {
 3     static void Main()
 4     {
 5         try
 6         {
 7             // 触发异常的代码
 8             throw new MyCustomException("Something went wrong.");
 9         }
10         catch (MyCustomException ex)
11         {
12             Console.WriteLine($"Custom Exception caught: {ex.Message}");
13         }
14         finally
15         {
16             // 清理代码
17             Console.WriteLine("Finally block executed.");
18         }
19     }
20 }

在上面的例子中,MyCustomException 类继承自 Exception 类,并实现了四个构造函数。在 Main 方法中,我们通过 throw 关键字抛出了一个新的 MyCustomException 对象,并在 catch 块中捕获了它。这样,当异常发生时,你就可以处理它并提供有关异常的更多信息。使用 finally 块可以确保无论是否发生异常,都会执行某些清理代码。

posted @ 2025-03-31 18:10  一事冇诚  阅读(5962)  评论(0)    收藏  举报