ContinueWith
を使用したTask
で問題が発生しました。コールバックでは、最初のタスクにフォールトが発生したときに私はException
を観察/処理しませんでした。私はここで、この場合に何が起こるかを発見:
Proper way to use .ContinueWith for Tasksデフォルトでタスクを待っているのは誰ですか?
独自の継続が 例外を守らない場合、 完全にこのワークフロー全体に待っている人が行っている、ということを覚えておいてくださいそれを観察する者になる。
待望されていないTask
のウェイターです:私の不思議作ら
?
デフォルトでTask
を待っているのは誰ですか?例えば
:この場合
public int HowOldAmI()
{
Task t = Task.Run(async() => {
await Task.Delay(5000);
throw new Exception("Something happened");
});
return 42;
}
、はTask
を待っている?
何もあなたが示されてきた場合には、ありません。タスクが完了するのを「暗黙的に」待つものはありません。タスクを作成し、それを待たない場合、例外は観察されない例外ハンドラに送られます。 –
ありがとう@JonSkeet。 _unobserved例外ハンドラ_はどこかに文書化されていますか?私が求めているのは、実際のクラッシュは起こっていないのに、クラッシュレポートライブラリがこれらの例外をキャッチしていることです。そのため、クラッシュレポートに表示されないように例外を正しく処理しようとしています。 –
Andrewからの回答を参照してください。 –