2012-05-16 37 views
2

我正在調試ASP.NET應用程序(C#,Visual Studio)中的異常。 這個異常是在另一個線程的頂層引發的(這不是問題,我改變了這個行爲,不拋出頂層異常)。異常似乎在調試時反覆拋出

我只是想知道這個: 這個異常會殺死整個工作進程。但是,當我正在調試時,調試器停在那個異常處,並且它似乎被反覆拋出(每當我按下繼續時,它將再次停止在同一行)。它在再次執行之前不會執行,所以它在那個特殊的異常處停止。

這是否僅僅是因爲調試器的特殊行爲?或者當我沒有調試它時,這個異常也會反覆拋出?

在此先感謝!

+2

我得到相同的行爲,如果我只是在例如拋出未處理的異常。一個控制檯應用。我不認爲這個異常會被反覆拋出 - 只是出於某種原因,調試器會讓你停留在那一行,而不是讓線程死掉。 – Rawling

+0

感謝您的評論!是的,我之前也在控制檯應用程序中看到過這種行爲;但從來沒有在ASP.NET應用程序。也許是這樣,因爲在web應用程序的主線程中存在某種導致黃色屏幕的「全局捕獲」。現在我看到了同樣的行爲,因爲這是另一個線程? –

+0

你能發送代碼嗎? –

回答

5

這是否僅僅是因爲調試器的特殊行爲?或者是 那個異常在我不調試的時候也會反覆拋出?

由於未處理的異常,Visual Studio調試器不會讓線程死亡。該異常沒有被重新拋出,調試器不會讓該行繼續,因爲它會使進程崩潰。如果調試器沒有連接,那麼IIS會給你一個黃色的死亡屏幕,而事件日誌將被填入其中的信息。

這對於所有應用程序,網絡或客戶端調試時都是相同的行爲。

+0

謝謝,很高興知道! –

相關問題