.net - 为什么在 Try ... Catch 中使用Finally

标签 .net vb.net exception try-catch-finally

我看到 Try .. Catch 中的 Finally 将始终在 try catch block 执行的任何部分之后执行。

跳过 Finally 部分并在 try catch block 之外运行它有什么不同吗?

示例 1,Try ... Catch ... Final ... End Try
    Try
        'Do something
    Catch ex As Exception
        'Handle exception
    Finally
        'Do cleanup
    End Try

示例 2,Try ... Catch ... End Try ... 在外面做最后的事情

    Try
        'Do something
    Catch ex As Exception
        'Handle exception
    End Try
    'Do cleanup

最佳答案

是的,这是不同的。最后将始终运行(除非程序崩溃)。如果函数在 try catch block 内退出,或者在 try 或 catch 中抛出另一个错误,finally 仍将执行。如果不使用finally 语句,您将无法获得该功能。

关于.net - 为什么在 Try ... Catch 中使用Finally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158667/

相关文章:

c# - 将字符串拆分为两部分

c# - 如何避免后续预定回调同时执行?

c++ - 抛出异常 : write access violation. newNode 为 nullptr

c# - 将字节数组(未知大小)拆分为剩余的 block

django - 捕获 django rest 框架中的所有异常

java.sql.异常: attempt to write on read-only database in java Swing Application

c# - ForEach 超过对象错误

c# - 确定 DataGridView 中的单元格位置

sql - 存储过程在 7 年后随机停止工作

javascript - 单击事件时将数据从 javascript 传递到 asp.net