【C#編程最佳實踐 十四】VS調試最佳實踐

Debug和Release分狀態調試

#if !DEBUG
     Console.WriteLine("Release:TML發佈的時候最帥了");
#else
      Console.WriteLine("DEBUG:TML調試的時候最帥了");
#endif

如果運行模式是Release,也就是!DEBUG則會輸出“Release:TML發佈的時候最帥了”。如果運行模式是Debug,則代碼會輸出“DEBUG:TML調試的時候最帥了”。 Debug和Release的設置和基本原理我在《深入理解CLR》中詳細論述過:

傳送門 https://blog.csdn.net/sinat_33087001/article/details/80185199

那麼什麼時候用這種方式調試呢?
這裏寫圖片描述
當出現這種情況,代碼在線程裏,這個時候打斷點跳進去的時候不利於觀察,這個時候可以設置在DEBUG狀態下不執行線程,只執行線程內部代碼,方便調試,在發佈的時候(Release)加上線程部分的內容,不影響發版上線。

通過日誌查看異常信息

try{
  foreach(var item1 in listA){
       foreach(var item2 in listA){
               item1==item2;
        }
  }
}
catch (Exception ex)
{
  logger.Error("元數據異步校驗失敗", ex);
}

上例中雙層循環裏報錯了,可能兩個list有5000多次加起來,一遍一遍的斷點調試並沒有效果,所以,這個時候打印日誌和堆棧信息就很有必要了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章