异常注意事项 3个月前

编程语言
884
异常注意事项

注意 ⚠️,必须在更一般的异常捕获之前为比较特殊的异常提供 catch 块。如果 catch 块的顺序有误,应用程序就会编译失败。还要注意可以在 catch 块中抛出异常,方法是使用上一个示例中的方式,或使用下述表达式:

throw;

这个表达式会再次抛出 catch 块处理过的异常。如果以这种方式抛出异常,该异常就不会由当前的 try...catch...finally 块处理,而是由上一级的代码处理(但嵌套结构中的 finally 块仍会执行)。

例如,如果修改 ThrowException() 中的 try...catch...finally 块,如下所示:

try
{
    Console.WriteLine("ThrowException(\"nested index\")" +
        "try block reached.");
    Console.WriteLine("ThrowException(\"index\") called.");
    ThrowException("index");
}
catch
{
    Console.WriteLine("ThrowException(\"nested index\") general"
        + " catch block reached.");
    throw;
}
finally
{
    Console.WriteLine("ThrowException(\"nested index\") finally"
        + "block reached.");
}

则首先执行其中的 finally 块,再执行 Main() 中匹配的 catch 块,得到的控制台输出 如图 7 - 20 所示

image

  • 图 7 - 20 *

    在这个屏幕截图中,Main() 函数输出了额外的几行,因为这个函数捕获了 System.IndexOutOfRangeException 异常。

image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223711
累计阅读

热门教程文档

Dart
35小节
Objective-C
29小节
QT
33小节
Spring Cloud
8小节
Python
76小节