c# - 捕获和识别 HttpRequestException“无法解析远程名称:'www.example.com'”的正确方法是什么?
问题描述
我希望能够捕获并识别属于此特定类型的异常,然后返回合适的错误消息。在 catch 块中执行此操作的正确方法是什么?
解决方案
您需要捕获的异常是带有a 的HttpRequestException
特定InnerException
aWebException
并且具有Status
值为 的属性WebExceptionStatus.NameResolutionFailure
。
幸运的是,使用 C# 6.0异常过滤器,现在很容易只捕获满足这些特定条件的异常:
var hc=new HttpClient();
try
{
(await hc.GetStringAsync("https://www.googggle.com"));
}
catch(HttpRequestException ex)
when ((ex.InnerException as WebException)?.Status ==
WebExceptionStatus.NameResolutionFailure)
{
//yay. localization-proof
Console.WriteLine("dns failed");
}
推荐阅读
- machine-learning - 分层分裂训练/测试 - H2O
- angular-material - Angular 9材料组件问题
- java - 如何在循环中调用类的所有getter方法?
- python - 合并两个熊猫数据框时如何将行“配对”并将它们合并为一个?
- java - 在本地时区独立解析 ZonedDateTime
- sql - 使用雪花函数的输入作为 From 子句
- javascript - iframe防止父后退按钮angular8
- javascript - 如何阻止 JS 代码将空格包装成跨度?
- firebase - 如何在firestore字段中插入firebase存储图像
- java - 如何使用 java.util Random 类在 2 个间隔内生成随机双精度数?