网站安全建设情况报告,昆明抖音代运营,建筑网站首页,网站后台更新无法在网页显示在任何编程语言中#xff0c;处理错误和异常都是不可避免的。C# 提供了强大的异常处理机制#xff0c;可以帮助开发者优雅地捕获和处理程序中的异常#xff0c;确保程序的健壮性和可靠性。本文将带你了解 C# 中的异常类、try-catch 语句、自定义异常以及 finally 块的使用。…在任何编程语言中处理错误和异常都是不可避免的。C# 提供了强大的异常处理机制可以帮助开发者优雅地捕获和处理程序中的异常确保程序的健壮性和可靠性。本文将带你了解 C# 中的异常类、try-catch 语句、自定义异常以及 finally 块的使用。 1. 异常类与结构
在 C# 中所有异常都是从 System.Exception 类派生的。Exception 类是所有异常类的基类它提供了丰富的属性来描述异常的详细信息。
常见的异常类有
System.NullReferenceException当引用对象为 null 时引发的异常。System.IndexOutOfRangeException当数组索引超出范围时引发的异常。System.DivideByZeroException当尝试用零除数时引发的异常。
每个异常类都提供以下常见属性
Message异常的描述信息。StackTrace异常发生时的调用堆栈信息。InnerException嵌套的异常信息。
try
{int[] array new int[2];Console.WriteLine(array[5]); // 引发 IndexOutOfRangeException
}
catch (Exception ex)
{Console.WriteLine($Error: {ex.Message});Console.WriteLine($StackTrace: {ex.StackTrace});
} 2. try-catch 语句
try-catch 语句 是处理异常的核心结构。try 块用于放置可能引发异常的代码catch 块则捕获并处理异常。
try
{int result 10 / 0; // 引发 DivideByZeroException
}
catch (DivideByZeroException ex)
{Console.WriteLine(Attempted to divide by zero.);
}
在上面的代码中try 块中的代码尝试将 10 除以 0从而引发 DivideByZeroException。catch 块捕获到该异常并输出一条错误信息。
你可以在 catch 语句中捕获特定的异常类型也可以捕获通用的 Exception 异常。
try
{string text null;Console.WriteLine(text.Length); // 引发 NullReferenceException
}
catch (NullReferenceException ex)
{Console.WriteLine(Null reference encountered.);
}
catch (Exception ex)
{Console.WriteLine($General exception: {ex.Message});
} 3. 自定义异常
C# 允许开发者根据具体需求创建自定义异常类。自定义异常通常派生自 Exception 类并添加额外的属性或方法来提供更详细的错误信息。
public class InvalidAgeException : Exception
{public InvalidAgeException(string message) : base(message) { }
}public class Person
{public int Age { get; set; }public void SetAge(int age){if (age 0 || age 150)throw new InvalidAgeException(Age must be between 0 and 150.);Age age;}
}try
{Person person new Person();person.SetAge(-5); // 引发自定义异常
}
catch (InvalidAgeException ex)
{Console.WriteLine(ex.Message); // 输出Age must be between 0 and 150.
}
在这个示例中InvalidAgeException 是一个自定义异常类用于处理年龄设置不合法的情况。 4. finally 块的使用
finally 块 用于执行无论是否发生异常都必须执行的代码。常见的用法是释放资源、关闭文件流或数据库连接等。
FileStream fs null;
try
{fs new FileStream(example.txt, FileMode.Open);// 读取文件操作
}
catch (FileNotFoundException ex)
{Console.WriteLine(File not found.);
}
finally
{if (fs ! null){fs.Close();Console.WriteLine(FileStream closed.);}
}
无论是否发生异常finally 块中的代码都会执行。它常用于确保资源正确释放避免资源泄漏。 结论
异常处理是编写健壮程序的关键。C# 提供了强大的异常处理机制通过 try-catch 语句捕获并处理异常自定义异常类来满足特定需求finally 块确保资源得到正确释放。掌握这些工具可以帮助你更好地编写安全且可维护的代码。
以下是本文的总结
使用 try-catch 捕获并处理异常。使用 Exception 类的属性获取异常详细信息。创建自定义异常类来处理特定的业务需求。使用 finally 块保证资源被正确释放。
通过理解和应用这些异常处理机制你可以显著提高代码的健壮性确保程序在意外错误发生时仍然能优雅地运行。 这篇博客涵盖了 C# 中的异常处理基础。如果你对某个特定主题有疑问或需要更多信息欢迎留言或联系我