任何人都可以解释如何处理lambda expression
中的异常处理。
我知道在Anonymous方法中我们可以使用try catch method
之类的,
Employee emp = listemp.Find(delegate(Employee employee)
{
try
{
if (number == 5)
throw new InvalidCastException();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
return employee.id == 101;
}
通过将上面的代码转换为我们拥有的Lambda Expression,
Employee e1 = listemp.Find(x => x.id == 101);
我的问题是:我们可以用这个表达式实现try catch吗?
答案 0 :(得分:12)
不确定。 Lambda表达式只是方法,因此您可以编写:
listemp.Find(x =>
{
bool found = false;
try
{
found = x.id == 101;
}
catch (Exception ex) { }
return found;
});
注意:我没有说可以捕获这样的异常,这仅用于示例目的。
当然,一旦你的匿名方法涉及这个,你应该考虑使用正确的方法。