你更喜欢看什么?
try
{
var item = list.Single(x => x.HasFoo);
}
catch(InvalidOperationException e)
{
throw new InvalidOperationException("Exactly one item with foo expected, none found", e);
}
Run Code Online (Sandbox Code Playgroud)
要么:
var item = list.SingleOrDefault(x => x.HasFoo);
if (item == null)
throw new InvalidOperationException("Exactly one item with foo expected, none found");
Run Code Online (Sandbox Code Playgroud)
这里的最佳做法是什么?哪一个让异常更容易理解?