对于以下代码:
public static void Main(string[] args)
{
var routingUrl = $"http://localhost:{args[1]}";
var routingRequest = new HttpRequestMessage(new HttpMethod(args[0]), routingUrl);
routingRequest.Content = new StringContent("Ping");
var client = new HttpClient();
try
{
client.Timeout = TimeSpan.FromMilliseconds(1000);
var httpResponse = client.SendAsync(routingRequest, HttpCompletionOption.ResponseHeadersRead).Result;
}
catch (System.AggregateException e)
{
Console.WriteLine($"TryPing {routingUrl} fails: {e.Message}");
Console.WriteLine($"{e.GetType().ToString()}");
foreach (var errInner in e.InnerExceptions)
{
Console.WriteLine(errInner);
}
}
}
我发现可能有几个问题导致catch
段运行,例如
- 发送请求时出错。
- 连接被拒绝(localhost:xxxxx)
有什么方法可以区分Connection refused
错误和其他错误吗?例如:如果异常是由连接被拒绝引起的,则执行某些操作;为其他错误做另一件事?
多谢了!
1条答案
按热度按时间qij5mzcb1#
如果内部异常的类型是aystem.net.aockets.aocketException,则在连接被拒绝时抛出。如果是连接被拒绝错误,则打印出特定的错误消息。如果不是连接被拒绝错误,则打印出一般的错误消息
}