建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一
生活随笔
收集整理的這篇文章主要介紹了
建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
建議64:為循環增加Tester-Doer模式而不是將try-catch置于循環內
?如果需要在循環中引發異常,你需要特別注意,應為拋出異常是一個相當影響性能的過程。應該盡量在循環當中對異常發生的一些條件進行判斷,然后根據條件進行處理。
做個測試:
Stopwatch watch = Stopwatch.StartNew();int x = 0;for (int i = 0; i < 10000; i++){try{int j = i / x;}catch{}}Console.WriteLine(watch.ElapsedMilliseconds);watch = Stopwatch.StartNew();for (int i = 0; i < 10000; i++){if (x == 0){continue;}int j = i / x;}Console.WriteLine(watch.ElapsedMilliseconds);Console.ReadKey();輸出為:
796
0
以上代碼中,我們預見了代碼肯能會發生DivideByZeroException異常,于是,調正策略,對異常發生的條件進行了特殊處理:Continue讓效率得到了極大的提升。
?
?
轉自:《編寫高質量代碼改善C#程序的157個建議》陸敏技
總結
以上是生活随笔為你收集整理的建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows无法调节亮度
- 下一篇: 什么是TXT记录?如何设置、检测TXT记