說我有這樣的一些語句:有什麼辦法可以捕獲導致異常的LINQ中的謂詞?
List<string> list = new List<string> {"1", "1", "2", "3", "4"};
try
{
Class1 c = new Class1
{
s1 = list.Single(s => s == "1"),
s2 = list.Single(s => s == "2"),
s3 = list.Single(s => s == "3"),
s4 = list.Single(s => s == "4")
};
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
我肯定會去的catch
塊有錯誤「輸入序列包含多個元素」在這一行:
s1 = list.Single(s => s == "1")
所以,我只是好奇,它有什麼方法可以在catch
塊中顯示錯誤謂詞?如果我們看到類似「有重複元素」1「的順序,這對修復錯誤非常有用。」甚至是字符串格式的完整謂詞。我能以某種方式查看這些信息並顯示或記錄它嗎?
那麼,例外已經包含它發生的行不是嗎? –
你能夠附加一個調試器,或者它是用於「生產」日誌目的嗎? – Allov
@布萊恩拉斯穆森,是的,你說得很對,我只是試了一下。我想這是使用可能拋出的初始化列表的問題。如果您將初始化移動到Class1的構造函數,您將獲得行號。 –