2013-08-27 3 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 
{ 
    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 
} 
Смежные вопросы