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#