在.NET Framework中,C#使用异常处理机制来处理错误。异常是程序在运行时遇到的问题,如尝试访问不存在的文件、除以零等。当异常发生时,程序会中断执行并跳转到相应的异常处理代码,这样可以确保程序不会因为错误而崩溃,并提供一种优雅的错误处理方式。
C#中的异常处理主要包括以下几个关键字和概念:
- try:用于包裹可能引发异常的代码块。
- catch:用于捕获特定类型的异常,并处理异常。
- finally:无论是否发生异常,都会执行finally块中的代码。
- throw:用于显式抛出异常。
- Custom Exceptions:允许创建自定义异常类,以满足特定需求。
以下是一个简单的C#异常处理示例:
using System; using System.IO; class Program { static void Main() { try { // 尝试读取一个不存在的文件 using (StreamReader sr = new StreamReader("nonexistent_file.txt")) { Console.WriteLine(sr.ReadToEnd()); } } catch (FileNotFoundException e) { // 捕获并处理特定类型的异常(这里是FileNotFoundException) Console.WriteLine("文件未找到: '{0}'", e.FileName); } catch (Exception e) { // 捕获其他未处理的异常 Console.WriteLine("发生异常: {0}", e.Message); } finally { // 无论是否发生异常,都会执行此代码块 Console.WriteLine("异常处理完成"); } } }
在这个示例中,我们尝试读取一个不存在的文件。如果文件不存在,程序会引发FileNotFoundException异常。通过使用try-catch块,我们可以捕获并处理这个异常,避免程序崩溃。最后,finally块中的代码将始终执行,确保资源得到正确释放。