在async方法中,发生一个异常时,代码并不会直接跳到catch语句中去,而是继续执行,所以到最后catch语句中得到的错误信息是one or more exceptions occurs…

这样的设计给我们带来了麻烦就是传统的try/catch方法得到的无法得到具体的错误信息。

 

【解决方法】

  1. 在catch语句中记录错误信息

if (e is
AggregateException)

{

AggregateException ae = (AggregateException)e;

ae.Handle((x) =>

{

exception = x.Message;

return
true; // Let anything else stop the application.

});

}

else

{

exception = e.Message;

}

 

  1. 在 catch语句中取到AggregateException的信息(类似解决方法1),然后重新抛出一个带有具体错误信息的异常给调用者。
  2. 将异常转成AggregateException后,可以取到InnerException或者InnerExceptions, 然后再用解决方法1或者2进行处理。

最新文章

  1. HUSTOJ(转发)
  2. wuzhicms 后台登录存留时间实现方式
  3. win7 debian 双系统修改引导项顺序
  4. 一个MP3播放的插件jPlayer
  5. 通过条件注释<!--[if IE]><!-->判断浏览器
  6. Navicat连接Oracle报错_Cannot load OCI DLL 87
  7. python数据类型——字典类型
  8. Spring Boot初探之数据库访问
  9. 网络1712--c语言嵌套循环作业总结
  10. css太极
  11. Redis学习-string数据类型
  12. NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中
  13. thinkCMF----导航高亮显示
  14. 《Blue Flke团队》第二次作业通讯录项目开题报告
  15. PAT——1024. 科学计数法
  16. MySQL实现允许远程用户登录(使用Navicat for MySQL工具)
  17. java之基本数据类型与引用数据类型
  18. Codeforces #447 Div.2 Tutorial
  19. Codeforces 449D Jzzhu and Numbers(高维前缀和)
  20. Linux下的目录结构

热门文章

  1. View 的 focus 和 selected 状态, TabContainer实现
  2. ext4 disable journal
  3. 数据挖掘之决策树ID3算法(C#实现)
  4. .NET并行编程1 - 并行模式
  5. javascript网址收集
  6. Python文本处理——中文标点符号处理
  7. 锋利的jQuery学习总结
  8. 剖析JavaScript函数作用域与闭包
  9. 通过WMI接口监控服务器性能
  10. C++设计模式-State状态模式