退出尝试与退出子

Exit Try vs Exit Sub

我有以下 Try 语句,尽管当写入数据库的值太大时,此后的所有内容都不会 运行。 我应该使用 Exit Try 而不是 Exit Sub 吗?

Try

    Dim conn As OracleConnection
    Dim cmdProduction As New OracleCommand
    conn = GetConnect()
    conn.Open()
    cmdProduction.Connection = conn
    cmdProduction.CommandText = "INSERT INTO PRODUCTION (DateTime, Plant, Runhours, Tons, Shift, Sft, Plant_Ord) Values ('" & DateTime & "','FM1-Selox','" & (seloxRuntime / 60) & "','" & seloxTons & "','" & theShift & "','" & sft & "','51')"
    cmdProduction.ExecuteNonQuery()
Catch ex As Exception
    WriteToFile("Production - Production : Database Error : " & ex.Message)
    conn.Close()
    Exit Sub
Finally
    conn.Close()
End Try

两者都不需要,从 Catch 中删除 conn.CloseExit Sub 即可。 conn.Close将从Finally执行。

Try
'
'
'
Catch ex As Exception
    WriteToFile("Production - Production : Database Error : " & ex.Message)
Finally
    conn.Close()
End Try

当然,如果您的示例代码不完整并且实际看起来像这样:

Finally
    conn.Close()
End Try

' More code

然后要么使用 Exit Sub,要么将剩余的代码移动到 Try

Try
'
'
'
' More code
Catch ex As Exception
    WriteToFile("Production - Production : Database Error : " & ex.Message)
Finally
    conn.Close()
End Try