這只是一個效率問題真的..我很想知道是否有更高效或邏輯的方式,人們用來處理這種情況。功能鏈接取決於布爾結果
在我的asp.net應用程序我運行一個腳本來生成一個新的項目我在最高級別的代碼如下所示:
Dim ok As Boolean = True
ok = createFolderStructure()
If ok Then ok = createMDB()
If ok Then ok = createProjectConfig()
If ok Then ok = updateCompanyConfig()
我創建了一個布爾值和每個函數返回一個布爾結果,下一個鏈中的功能只有在前一個功能成功時纔會運行。我這樣做是因爲一個asp.net應用程序將繼續運行整個頁面生命週期,除非有一個未處理的異常,並且我不希望我的整個應用程序被搞砸,如果鏈中出現問題(有很多在這個例子中複製和刪除文件等)。
我只是想知道其他人如何處理這種情況? vb.net單行if語句相當簡潔,但我想知道是否有更好的方法?
感謝您的答覆..與try catch方法的問題是,所有的功能仍然會運行,採取上面的例子,如果createFolderStructure()失敗,然後createMDB()不能工作,上述不會停止。 如果try/catch在每個函數本身中,那麼即使我在catch中調用'Exit Function',鏈中的下一個函數也會運行? 下一個函數仍然需要查詢結果以確定它是否安全運行? – Markive 2010-06-07 09:25:42
@Markive,你有一些事情混在一起。如果createFolderStructure引發異常,那麼createMDB最不會運行。 – 2010-06-07 09:27:29
@Markive - 如果'createFolderStructure'失敗並引發異常,則不會調用以下任何方法。控件將立即傳遞給異常處理部分。 – ChrisF 2010-06-07 09:27:42