3
我得到一套完整的嵌套異常的時候我用AggregateException
ToString()
方法直接:裹AggregateException報告中ToString方法只是第一個例外
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
不存在於結果字符串中。這是一個bug還是AggregateException
類的一些知名功能?
你說的沒錯,但這個真的打算和有意義的行爲嗎?特別是對於記錄這種例外情況是非常危險的 - 你只是忽略了一部分例外。我會說這是一個錯誤:)我沒有看到這種行爲的任何有意義的理由。 – Buthrakaur
@Buthrakaur我認爲這不是一個錯誤。你不應該使用基本的Exception類。如果要更改行爲,請使用自定義的並提供ToString()的覆蓋 – Jehof
@Buthrakaur您還應該注意,Exception類在執行AggreagateException之前很長時間纔會退出。 – Jehof