在Excel VBA中,將Debug.Print
指令留在「生產」中的代碼中是否是一種好的做法?當出現問題時,在用戶的機器上實時調試工作表非常有用。當Visual Studio關閉時會影響性能嗎?如果沒有,你會建議什麼?將「Debug.Print」指令留在「生產」中的代碼中是否是一種好的做法?
8
A
回答
21
Debug.Print指令DO的性能成本很低。所以我會避免它們執行數十億次的循環。除了這些情況,我認爲可以保留它們。
您也可以將條件編譯指令(#if
)與編譯器常量(#const
)結合使用以在不影響性能的情況下全局啓用/禁用它們。
#CONST developMode = True
sub Xyz
#If developMode Then
Debug.Print "something"
#End If
End Sub
4
我通常有兩個版本;沒有調試的刺激,並帶有調試。結合catchall錯誤處理程序記錄,意味着如果用戶遇到問題,我可以將調試版本部署到他們,他們可以運行它。
我有一個宏,我運行該註釋掉debug.print語句,所以它不是一個真正的維護開銷。
一直運行調試版本的問題(以及Excel VBA通常不是性能問題)是您的應用程序不斷髮出不需要的信息。例如,在控制電子表格的環境中,這可以被看作是一件壞事。
在全局錯誤處理方面,你仍然需要你想在錯誤處理每一個功能上的錯誤GoTo語句可以,但是,管這些,以一個共同的功能:
Public Function HandleTheNastyErrors(E As ErrObject, ByVal writeLog As Boolean = True)
Select Case E.Number
Case xxx
...specific error handling...
Case Else
... Display a message to the user about how you dont know what happened....
End Select
If writeLog Then
...Log Writing Code...
End If
End Function
然後,的OnError:
ErrorHandler:
Call HandleTheNastyErrors(Err, True)
展會做的伎倆
相關問題
- 1. Java:在XML中定義bean是否是一種好的做法?
- 2. 在Redux商店中配置是否是一種好的做法?
- 3. 在內部使用的代碼中製作額外的代碼是否是一種好的做法?
- 4. 在C中釋放空指針是否是一種好的做法?
- 5. 將Solr用作數據庫是否是一種好的做法
- 6. 是否將活動實例保存在WeakReference中是一種很好的做法
- 7. 將DTO對象深入集成在代碼中是否是一種好的做法?
- 8. NSParameterAssert是否可以留在生產代碼中?
- 9. 是否將ObjectId保留在mongoose/mongodb的子文檔中是一種好的做法?
- 10. 將canvas設爲JavaScript中的全局對象是否是一種好的做法?
- 11. 在另一種方法的參數列表中調用方法是否是Java中的一種良好做法?
- 12. 總是加入SQL表是否是一種很好的做法?
- 13. 是否總是在DAL基類中使用TransactionScope是一種好的做法?
- 14. 在一個類中編寫所有數據庫訪問代碼是否是一種好的做法?
- 15. 抽象使用的API是否是一種好的做法?
- 16. 將預處理器指令與功能代碼混合是一種不好的做法嗎?
- 17. aspx頁面中的內聯代碼是一種很好的做法嗎?
- 18. 存儲計算值是否是一種很好的做法?
- 19. 鏈接libstdC++ static是否是一種好的做法?
- 20. 拆分CSS是否是一種很好的做法?
- 21. 分配後清除()bytebuffer是否是一種好的做法?
- 22. 忽略腳本類型是否是一種好的做法?
- 23. 您是否認爲ASP.NET WebForms是一種不好的做法?
- 24. 捕獲意外異常是否是一種好的做法?
- 25. 在Java代碼中進行頻繁提交以插入數據庫是否是一種很好的做法?
- 26. 在css文件中輸入地圖文件是否是一種好的做法?
- 27. 在共享內存中存儲結構是否是一種好的做法?
- 28. 在業務邏輯中使用反射是否是一種好的做法?
- 29. 在元標記中存儲csrf標記是否是一種很好的做法?
- 30. 在虛函數中拋出異常是否是一種好的做法?
你說 「的Visual Studio」,但你說的是VBA,對不對?你的意思是VBE嗎? – aevanko
啊,是的,我想我只是明白現在人們稱之爲VBE ...是的,我猜是這樣:) [ALT + F11] – Jerome
1)如果重要的是捕捉用戶在出錯時所做的事情,一個交易日誌將會是一個更好的選擇。每次運行或每天啓動一個新文件;刪除任何超過48小時。是的,有性能成本,但你會如何衡量。 2)Visual Studio是MS專業語言的開發環境。 VB 2010比VBA/VBE快數百倍,並且擁有數千個很酷的設施。如果您想使用工作表,您可以從中訪問Excel。 –