6

ToString()メソッドをAggregateException直接使用すると、ネストされた例外の完全なセットが得られます。

public void GreenTest()
{
    var ex = new AggregateException(new Exception("ex1"), new Exception("ex2"));

    ex.ToString()
        .Should()
        .Contain("ex1")
        .And
        .Contain("ex2");
}

AggregateException問題は、が別の例外にラップされているときに最初の例外しか取得しないことです。

public void RedTest()
{
    var ex = new Exception("wrapper", new AggregateException(new Exception("ex1"), new Exception("ex2")));

    ex.ToString()
        .Should()
        .Contain("wrapper")
        .And
        .Contain("ex1")
        .And
        .Contain("ex2");
}

ex2結果の文字列には存在しません。AggregateExceptionこれはバグですか、それともクラスのよく知られた機能ですか?

4

1 に答える 1