2011-03-22 59 views
0

當我的應用程序在關閉時可能陷入無限循環時,我有一個奇怪的場景。它發生在想要做某事但通話失敗,因爲它不再具有訪問權限(基於時間)。在這種情況下,它應該停止。 我記錄失敗的嘗試,如果計數超過某個特定的時間在一定的時間,我拋出一個異常,我期望啓動JIT調試器並停止應用程序。 我不完全確定它爲什麼進入循環,所以我想讓JIT窗口給我提供諸如調用堆棧和應用程序狀態等信息。 我有異常處理,但我想要的是關閉它,並以某種方式生成將觸發JIT調試器的異常,但是,我發現所有其他帖子都用於處理異常並避免崩潰。 如果在運行時有另一種方式讓應用程序停止並告訴我發生了什麼,我想知道。 謝謝。C#創建一個致命的異常?

+0

你可以隨時System.Threading.Thread.CurrentThread.Abort() – asawyer 2011-03-22 13:12:48

+0

你爲什麼不用調試器運行你的應用程序? – BrokenGlass 2011-03-22 13:15:36

回答

1

這條線:

System.Diagnostics.Debugger.Launch(); 

將啓動調試器爲您服務。試一試。

1

我有異常處理

聲音對我說,你有太多了。只有有具體的異常類型,從來沒有捕獲異常。現在你可以簡單地拋出任何其他異常類型,你的應用程序將會彈出一個未處理的異常。這會在您的開發機器上啓動JIT調試器對話框,這是您客戶機器上的一個仁慈的結局。

使用System.Diagnostics.Debugger也不錯,但是用#ifdef DEBUG包裝它。您的客戶沒有一個。