2016-06-29 12 views
0

私はこれらの2つのメソッドを持っていますが、DoSomethingAsyncがFormatExceptionを返すことは確かです。しかし、常に最後のキャッチで "キャッチされます"例外 "別のタスクメソッドからの特定の例外のキャッチ

なぜCallSomethingAsyncがFormatExceptionを捕まえないのですか?

 public Task DoSomethingAsync() 
     { 
      //Do something that throws a FormatException 

      return Task.FromResult(0);   
     } 

    public virtual string CallSomethingAsync() 
    { 
     try 
     { 
      this.DoSomethingAsync().Wait(); 

      return “Ok”; 
     } 
     catch (FormatException) 
     { 
      return “FormatException”; 
     } 
     catch (Exception) 
     { 
      return “GeneralException”; 
     } 
    } 

答えて

2

タスクは1つ以上の例外を返す可能性があるため、タスクの実行中に発生したすべての例外を含むAggregateExceptionをスローします。

InnerExceptionsコレクションを列挙して、異なる種類のExceptionを明示的に処理する必要があります。

関連する問題