2012-05-06 11 views
2

私は、切断によって引き起こされた例外をキャッチしようとしている次のコードを持っている: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: 
+1

デバッガがファーストチャンスの例外でブレークするように設定されていませんか? – GETah

+0

私は例外設定を見て、すべての例外を壊すように設定されました。私はそれを修正し、今は正しく動作するようです。ありがとう。 –

+0

うれしかったです。将来の参考として、私は以下の答えにコメントを移しました。あなたの問題を解決するのに役立ちましたら、回答としてマークしてください。ありがとう:) – GETah

答えて

2

最初のチャンス例外でブレークしないようにデバッガの設定を変更します。

+0

これはどこですか? – Carlo

+0

@Carloこのリンクをチェックしてくださいhttp://blogs.msdn.com/b/davidklinems/archive/2005/07/19/440632.aspx – GETah

関連する問題