當我想調試我的應用程序拋出異常,這意味着我需要禁用try-catch塊這樣的:更好的方式嘗試趕上只在釋放?
#if !DEBUG
try
{
#endif
// Do something
#if !DEBUG
}
catch (ArgumentException)
{
Console.WriteLine("Something wrong");
}
#endif
注:我知道在Visual Studio中的處理異常突破,但不足之處它是否在同一類型的每個異常中都被打破。 編輯來更改我的意思:例如,函數A和B都拋出NullReferenceException,但我只想檢查A什麼時候拋出它,但不是B(處理N中的NulRefExc已經是正確的)。
有人可能會問爲什麼我需要這個。通常我在沒有調試的情況下運行ASP.NET MVC代碼(但仍然在調試版本中,它有DEBUG變量),並且拋出異常真的很棒,而不是捕獲它(當然僅在開發模式下),因爲帶有堆棧跟蹤的錯誤頁面將會顯示,所以我們可以更快地跟蹤錯誤。
有沒有更清晰的方法來編寫代碼?
我不看怎麼做這個(想象有一個方式)將使您免於「不利之處在於,它在每種相同類型的異常情況下都會中斷,無論它發生在何處」 – user5328504
您是否需要捕獲全局異常?並且在它上面創建斷點,您將在調試器中獲得堆棧跟蹤的完整異常。 – nyconing
Google [asp.net mvc global error handler](https://www.google.ca/search?q=asp+mvc+global+error+handler&oq=asp+mvc+global+e&aqs=chrome.1.69i57j0l5.7663j0j4&sourceid=chrome&ie = UTF-8) – CodingYoshi