C# 6.0 (C# vNext) 的新功能:Exception-Handling Improvements
于 C# 6.0 包裹在异常处理的新功能,有两个方面的改进:
异常过滤,这算是让 C# 跟上 Visual Basic .NET 和 F# 在这方面的支持。
比較一下之前的写法:
- 异步处理(async and await)能力 catch block 总结使用。于 C# 5.0 释放 async and await,在那个时候它不能用 catch block。现在能够做到这一点。
- 支持异常过滤 exception filtering
try { WebRequest webRequest = WebRequest.Create("http://www.csdn.net"); WebResponse response = await webRequest.GetResponseAsync(); // ... } catch (WebException exception) { await WriteErrorToLog(exception); }
异常过滤,这算是让 C# 跟上 Visual Basic .NET 和 F# 在这方面的支持。
例如以下样例:
try { DoSomeHttpRequest(); } catch (System.Web.HttpException e) if (e.GetHttpCode() == 400) { WriteLine("Not Found"); } catch (System.Web.HttpException e) if (e.GetHttpCode() == 500) { WriteLine("Internal Server Error"); } catch { WriteLine("Generic Error"); }
比較一下之前的写法:
try { DoSomeHttpRequest(); } catch (System.Web.HttpException e) { switch (e.GetHttpCode()) { case 400: WriteLine("Bad Request"); case 500: WriteLine("Internal Server Error"); default: WriteLine("Generic Error"); } }
版权声明:本文博主原创文章,博客,未经同意不得转载。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步