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多次加起來,一遍一遍的斷點調試並沒有效果,所以,這個時候打印日誌和堆棧信息就很有必要了。