在C#中,异常处理是通过使用try、catch、finally和throw关键字来实现的。以下是基本的异常处理结构:

1. try-catch 块:
   try
   {
       // 代码块,可能会引发异常
       int result = Divide(10, 0);
   }
   catch (DivideByZeroException ex)
   {
       // 捕获 DivideByZeroException 异常
       Console.WriteLine("Error: " + ex.Message);
   }
   catch (Exception ex)
   {
       // 捕获所有其他类型的异常
       Console.WriteLine("Error: " + ex.Message);
   }

2. finally 块:
   try
   {
       // 代码块,可能会引发异常
   }
   catch (Exception ex)
   {
       // 异常处理
   }
   finally
   {
       // 无论是否发生异常,都会执行的代码块
   }

3. throw 关键字:
   int Divide(int a, int b)
   {
       if (b == 0)
       {
           // 抛出 DivideByZeroException 异常
           throw new DivideByZeroException("Cannot divide by zero.");
       }

       return a / b;
   }

在上述示例中:
  •  try 块包含可能引发异常的代码。

  •  catch 块用于捕获特定类型的异常,并提供相应的处理。

  •  finally 块包含无论是否发生异常都会执行的代码。

  •  throw 关键字用于引发异常。


通常,建议尽量具体地捕获异常,即使用多个 catch 块按照异常的具体类型进行处理,以确保对不同类型的异常采取适当的措施。Exception 类是所有异常类型的基类,因此可以用于捕获所有异常,但最好在可能的情况下使用更具体的异常类型。

另外,C# 还提供了 using 语句用于自动释放资源,例如文件或数据库连接,在退出 using 代码块时,会自动调用对象的 Dispose 方法。这有助于确保资源得到适当地释放,即使发生异常。


转载请注明出处:http://www.pingtaimeng.com/article/detail/6358/C#