lambda表达式和异常处理
问题描述:
我有类似如下:lambda表达式和异常处理
public class FooWrapper
{
public Action Foo { get; set; }
public void Execute()
{
try
{
Foo.Invoke();
}
catch (Exception exception)
{
//exception is null
//do something interesting with the exception
}
}
}
当我运行我的单元测试的东西,如下列:
new FooWrapper() { Foo =() => { throw new Exception("test"); } };
预期的异常被抛出,但和卡逐步通过但“异常”为空。如何获得.Invoke()抛出的异常以正确处理它?
答
这听起来像你的catch块内代码中的错误。由您的示例定义的catch块中的异常值不能为空。该代码必须有一个非空的异常值才能执行。
你可以发布你的catch块的内容吗?
答
它只出现null,如果你有一个断点外exception
行;在里面,它应该是非空的。我刚刚测试过它,并得到Exception
与Message="test"
,如预期。
男孩,我现在不觉得傻! 谢谢大家! – Mike 2009-10-15 15:56:35