Socket
の一連のメソッドを使用するコンソールアプリケーションを作成しましたが *Async
、時々クラッシュします。同期されたコードのように例外がどこにスローされたかは表示されません。コンソールがシャットダウンするだけで、何が間違っているのかわかりません。
try
/catch
ブロックをどこに置くかを知らなくても、このような非同期操作に関して例外を検出する方法はありますか?
必要なのは、コードのどの部分がアプリケーションをクラッシュさせるかを知ることだけです。
編集:
未処理の例外の通常のことは、Visual Studioを使用してコードをデバッグしているときに、実行を一時停止し、例外(または少なくとも例外メッセージ)の原因となったコード行を表示することです。ただし、状況によっては(IOCPなどの低レベルAPIとの対話など)、プログラムがクラッシュし、原因に関する情報がないままデバッグが終了する場合があります。
私が必要としているのは、その特定の例外を確認する方法です。
「何が起こったのか、どこで(どのメソッドで)起こったので、プログラムがクラッシュしたのですか?」
ですから、「何を間違えたのか」ではなく、「何を間違えたのかをどうやって知ることができるのか」と問いかけます。
- 例外がスローされた時点で実行を中断できますか?
- クラッシュ後の呼び出しスタックを確認して、原因となったメソッドを特定できますか?
- このような状況を回避するためのアドバイスをお願いします。