捕获异步空方法引发的异常。使用Microsoft for.NET的异步CTP,是否有可能捕获调用方法中的异步方法引发的异常?public async void Foo(){
var x = await DoSomethingAsync();
/* Handle the result, but sometimes an exception might be thrown.
For example, DoSomethingAsync gets data from the network
and the data is invalid... a ProtocolException might be thrown. */}public void DoFoo(){
try
{
Foo();
}
catch (ProtocolException ex)
{
/* The exception will never be caught.
Instead when in debug mode, VS2010 will warn and continue.
The deployed the app will simply crash. */
}}因此,基本上,我希望异步代码中的异常出现在我的调用代码中,如果这是可能的话。
3 回答
森林海
TA贡献2011条经验 获得超2个赞
Foo()
Task
DoFoo()
await Foo()
public async Task Foo() { var x = await DoSomethingThatThrows();}public async void DoFoo() { try { await Foo(); } catch (ProtocolException ex) { // This will catch exceptions from DoSomethingThatThrows }}
- 3 回答
- 0 关注
- 341 浏览
添加回答
举报
0/150
提交
取消