2012-06-15 93 views
-1

我有一個C#應用程序..我不斷得到一個空引用異常..我設法捕捉這個異常並記錄它..但我懷疑這個異常是否會影響我的應用程序的性能..請注意,我不是試圖避免異常,我需要知道如果這個異常影響我的應用程序的性能,如果它不斷被解僱。異常會影響應用程序的性能嗎?

+2

如果您收到空例外,這意味着您的代碼需要修復。 –

回答

4

如果你得到一個NullReferenceException,你應該修復它,而不是追趕它。只有在代碼中出現不能修復(例如,第三方庫已損壞)的情況時,才應該捕獲它。 A NullReferenceException總是表示編程錯誤某處

至於性能 - 這取決於你的意思是「連續」。如果沒有什麼是真的錯誤,拋出異常會非常昂貴 - 正確使用時它們會很好。例如,你每秒看到多少個?請注意,在調試器中運行時,異常通常比調試器未連接時要昂貴得多。

與以往一樣,當您擔心性能時,您應該測試的表現,因此您可以使用硬數據做出決定。

0

這取決於您處理異常的位置以及它們發生的頻率。 CodeProject上有關於異常和性能的好文章,我建議你閱讀it

0

是的,它影響它取決於它的頻率。

如需進一步信息,請參閱Link,它也可以幫助你Link

0

例外的目的是爲了改變性能到最低限度時不會拋出他們:添加一個try/catch塊應該有衝擊非常有限的應用程序性能 因此,我會建議添加儘可能多的try/catch塊以根據需要捕獲任何異常。

但是,投擲和捕捉異常可能非常昂貴。應用程序必須切換上下文,使用塊來處理任何元素......這就是爲什麼我同意@Ramhound:你應該修正異常而不是捕獲它。

相關問題