退出尝试与退出子
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.Close
和 Exit 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
我有以下 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.Close
和 Exit 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