我在代理中捕获异常时遇到问题
private static async Task Check()
{
foreach (var cookieList in CookieList)
{
var user = JsonReader.readJSON("dataproxy.json", "proxyDetails", "proxyuser");
var pass = JsonReader.readJSON("dataproxy.json", "proxyDetails", "proxypass");
var proxyIp = JsonReader.readJSON("dataproxy.json", "proxyDetails", "proxyip");
var proxyPort = JsonReader.readJSON("dataproxy.json", "proxyDetails", "proxyport");
var container = new CookieContainer();
var handler = new HttpClientHandler();
handler.CookieContainer = container;
var client = new HttpClient(handler);
WebProxy proxy = new WebProxy(proxyIp,Convert.ToInt32(proxyPort));
if(user != null)
{
proxy.Credentials = new NetworkCredential(user, pass);
}
client.BaseAddress = BaseAddress; try
{
handler.Proxy = proxy;
}
catch
{
LogSystem.SendMessage("Proxy Error!", Log.Type.Message);
}
每当一个代理是不是工作我得到这个错误:
你知道如何捕捉这个错误,让它重试,如果没有然后跳过?
1条答案
按热度按时间ee7vknir1#
Net的设计者已经考虑到了这些问题,并为我们提供了一个名为UnhandledExceptionEventHandler的事件,通过它我们可以拦截未捕获的异常并进行处理,这个事件的事件参数UnhandledExceptionEventArgs e有两个属性,一个是ExceptionObject,这个属性返回拦截异常的对象示例,另一个属性是IsTerminating,它告诉我们这个异常是否会导致应用程序终止。让我们看看Asp.net应用程序如何拦截未捕获的异常。
第一步:创建一个实现IHttpModule接口的类
第二步:修改web.config
在system.web部分中添加
完成这两个步骤后,ASP.NET应用程序可以拦截未捕获的异常。
下面是测试代码:
按下Button1后,w3wp.exe终止,异常信息记录在testme.log中。