程序流程结构
Program Flow Structure
MainSub 执行 5 个任务。目前有几个任务被编写为返回它们是否成功的函数。我只想在前一个任务成功完成的情况下继续执行下一个任务,否则 运行 workerThreadComplete。
有没有一种方法可以使 MainSub 更具可读性,特别是删除每一行的 "If Not [] Then GoTo" 部分?像这样的东西通常应该如何构建?
Sub MainSub(params As Object) 'run by workerThread
Dim s As sessionData = CType(params, sessionData)
If Not verifyExcelResource(s) Then GoTo eexit
If Not launchAS400(s) Then GoTo eexit
If Not runLookup(s) Then GoTo eexit
If Not payeeProcessLoop(s) Then GoTo eexit
exportDoc(s)
workerThreadComplete
eexit:
workerThreadComplete
End Sub
方式之一:
Sub MainSub(params As Object) 'run by workerThread
Dim s As sessionData = CType(params, sessionData)
If (verifyExcelResource(s) AndAlso
launchAS400(s) AndAlso
runLookup(s) AndAlso
payeeProcessLoop(s))
Then
exportDoc(s)
workerThreadComplete
End Sub
MainSub 执行 5 个任务。目前有几个任务被编写为返回它们是否成功的函数。我只想在前一个任务成功完成的情况下继续执行下一个任务,否则 运行 workerThreadComplete。
有没有一种方法可以使 MainSub 更具可读性,特别是删除每一行的 "If Not [] Then GoTo" 部分?像这样的东西通常应该如何构建?
Sub MainSub(params As Object) 'run by workerThread
Dim s As sessionData = CType(params, sessionData)
If Not verifyExcelResource(s) Then GoTo eexit
If Not launchAS400(s) Then GoTo eexit
If Not runLookup(s) Then GoTo eexit
If Not payeeProcessLoop(s) Then GoTo eexit
exportDoc(s)
workerThreadComplete
eexit:
workerThreadComplete
End Sub
方式之一:
Sub MainSub(params As Object) 'run by workerThread
Dim s As sessionData = CType(params, sessionData)
If (verifyExcelResource(s) AndAlso
launchAS400(s) AndAlso
runLookup(s) AndAlso
payeeProcessLoop(s))
Then
exportDoc(s)
workerThreadComplete
End Sub