C# 异常处理-自定义异常
原文链接:https://www.cnblogs.com/ysmc/p/18802668
在C#中,异常处理是通过try, catch, finally和throw语句来实现的。如果你想要创建一个特定于你的应用程序的异常情况,你可以定义一个自定义异常。自定义异常允许你添加特定的属性和方法来处理特定的错误情况。
要创建一个自定义异常,你需要定义一个类并使其继承自 System.Exception
类或者任何其他现有的异常类。通常,你至少应该实现以下四个构造函数:
- 无参数构造函数。
- 带有一个字符串参数的构造函数,该字符串表示错误消息。
- 带有一个字符串参数和一个异常参数的构造函数,该异常表示内部异常(即导致当前异常的异常)。
- 一个带有序列化数据的构造函数,用于在远程处理过程中支持异常的序列化。
下面是一个自定义异常的例子:
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
块可以确保无论是否发生异常,都会执行某些清理代码。
本文来自博客园,作者:一事冇诚,转载请注明原文链接:https://www.cnblogs.com/ysmc/p/18802668