我有一個令人困惑的問題,我無法以任何方式解決它。我有幾行代碼,在某些時候,Send
函數會拋出一個System.Net.Sockets.SocketException
。但是,即使try有catch塊,它也不會捕獲異常並繼續正常流程。當我嘗試運行需要拋出相同異常的情況時,catch捕獲它非常好。C#Try-catch沒有發現異常
事情我已經嘗試:
- 試圖改變VS調試設置「只啓用對於我的代碼」,但 它已經被禁用。
- 我試過調試和發佈模式。
- 我試過使用一般的異常捕獲器,但都沒有工作。
這裏是代碼,在某些時候,從服務器的連接關閉和c
套接字斷開連接。它返回System.Net.Sockets.SocketException
,但下面的捕獲不捕獲它。
try
{
// Some code here . . .
c.Send(clientData);
Print("Started uploading the file " + uploadFilename + ".");
upBox.Text = "";
Print("Finished uploading the file " + uploadFilename + ".");
}
catch (System.Net.Sockets.SocketException)
{
Print("You are disconnected from server!");
}
如果不捕捉異常,你怎麼知道它發生?你從Windows獲得「程序停止工作」的事情嗎? – Steve
我看到從手錶菜單中突破和檢查引發的異常。在監視面板中,當我編寫c.send(clientData)時,我可以看到異常,而不是發送的字節數。 –
因此,程序未運行時發生異常。這就是你說例外發生的「某點」。你的程序不會導致異常。在這種情況下,你想要做的事可能無效。 – Steve