1

次のように非同期の http 呼び出しを行うコードがあります。

try
{
  var myHttpClient = new HttpClient();
  var uri = "http://myendpoint.com";

  HttpResponseMessage response = client.GetAsync(uri).Result;
}
catch (Exception ex)
{
  Console.WriteLine("an error occurred");
}

ほとんどの場合、これで問題なく動作しますが、ときどき、System.AggregateExceptionwhich と表示されることがあります。One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. --- End of inner exception stack trace

上記の場合、私の catch ステートメントに到達することはありません。その理由はわかりません。タスクが例外をスローするときにいくつかの複雑な要因があることは知っていますが、catch ステートメントでタスクを処理する方法がわかりません。

4

1 に答える 1