程序流程结构

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