私は、切断によって引き起こされた例外をキャッチしようとしている次のコードを持っている:Visual Studioのブレークは、(代わりにキャッチに捕まる呼び出し)
try
{
DataReaderLoadOperation op = dataReader.LoadAsync((uint)readBuffer.MaxLength());
await op; // <-- Debugger show COMException here
ReceiveCallback(op, op.Status);
}
catch (COMException e)
{
Logger.Info("{0} disconnected. (Waiting)", this);
Logger.Debug("{0} exception = {1}", this, e);
OnDisconnected();
}
なぜ私のコードがそれをキャッチしていませんが?
System.Runtime.InteropServices.COMException occurred
HResult=-2147014842
Message=An existing connection was forcibly closed by the remote host. (Exception from HRESULT: 0x80072746)
Source=mscorlib
ErrorCode=-2147014842
StackTrace:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Crystal.IO.Network.SocketClient.<WaitForIncoming>d__4.MoveNext() in d:\Crystal\library\IO\Network\SocketClient.cs:line 479
InnerException:
デバッガがファーストチャンスの例外でブレークするように設定されていませんか? – GETah
私は例外設定を見て、すべての例外を壊すように設定されました。私はそれを修正し、今は正しく動作するようです。ありがとう。 –
うれしかったです。将来の参考として、私は以下の答えにコメントを移しました。あなたの問題を解決するのに役立ちましたら、回答としてマークしてください。ありがとう:) – GETah