2013-08-27 55 views
-2

有時htmlDocument.Load(URL)給了我這個異常:不能趕上HTMLDocument的負載例外

Unhandled Exception: System.IO.IOException: Unable to read data from the transpo 
rt connection: An existing connection was forcibly closed by the remote host. -- 

不幸的是,我不能捕獲這個異常。

我捕捉到了異常如下:

try 
{ 
    page = web.Load(url + Convert.ToString(i + 1) + "/"); 
} 
catch (ArgumentException ex) 
{ 
    //do something 
} 

當我運行該程序,異常仍停在那裏行寫程序:

page = web.Load(url + Convert.ToString(i + 1) + "/"); 

有人能幫助我嗎?

回答

1

這是因爲引發的異常是System.IO.IOException,而您正在捕獲ArgumentException

你的代碼更改爲:

try 
{ 
    page = web.Load(url + Convert.ToString(i + 1) + "/"); 
} 
catch (System.IO.IOException ex) 
{ 
    //do something 
} 
1

代碼捕獲僅ArgumentException秒。

如果你想捕捉其他類型的異常,你需要改變它。

2

只是提供另一種解決方案。你的捕獲是爲ArgumentException和將捕獲只有ArgumentException s ...是什麼帶來的是IOException

你可以改變你的代碼如下,如果你只是想趕上所有異常,由你的try塊拋出:

try 
{ 
    page = web.Load(url + Convert.ToString(i + 1) + "/"); 
} 
catch (Exception ex) 
{ 
    //do something 
} 

如果你想要做的事對於每個例外不同:

try 
{ 
    page = web.Load(url + Convert.ToString(i + 1) + "/"); 
} 
catch (ArgumentException ex) 
{ 
    //do something about ArgumentException 
} 
catch (System.IO.IOException ex) 
{ 
    //do something about IOException 
}