.NET Core学习笔记(3)——async/await中的Exception处理

在写了很多年.NET程序之后,年长的猿类在面对异步编程时,仍不时会犯下致命错误,乃至被拖出去杀了祭天。本篇就async/await中的Exception处理进行讨论,为种族的繁衍生息做出贡献……
处理async/await中的Exception,最致命的莫过于想抓的Exception抓不到,程序崩的莫名其妙,连日志都没记下来,没法定位错误。让我们来看以下代码:

private async void SomethingWrongAsync() { await Task.Delay(100); throw new InvalidOperationException(); } public void SomethingWrongCannotCatch() { try { SomethingWrongAsync(); } catch (Exception) { // Sometimes we write log here, but the exception is never caught! throw; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzswz.html