Проблема обработки исключений в C # - PullRequest
0 голосов
/ 10 августа 2011

В настоящее время я пытаюсь добавить обработчик исключений для некоторого кода. Этот код просто создает экземпляр.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(firstline); 

Я пробовал:

try 
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(firstline); 
}

catch(Exception ex)
{
    // code here
}

Я получаю следующую ошибку компиляции:

Ошибка 1 Имя «запрос» не существует в текущем контексте.

Добавляя пример к заявлению. Я что-то упустил?

Ответы [ 4 ]

2 голосов
/ 10 августа 2011

Скорее всего, исключение происходит не при попытке создать запрос, а при попытке получить ответ:

HttpWebResponse response;
try 
{
    response = (HttpWebResponse)request.GetResponse();
}
catch (Exception ex)
{
    // Handle exception here
}

При использовании блоков try-catch вам необходимо окружить строкукода, который не работает.(Возможно, вам нужно прочитать документацию еще немного.)

При использовании блоков try-catch следует помнить, что все, что вы собираетесь использовать вне блока try, должносоответственно (ограничить его за пределами блока try, как я делал выше).

1 голос
/ 10 августа 2011

Кажется, вы пытаетесь использовать переменную "request" вне блока try.Вам нужно объявить его вне блока, если вы хотите использовать его после блока try / catch.

HttpWebRequest request;
try 
{
    request = (HttpWebRequest)WebRequest.Create(firstline); 
}
catch (Exception ex)
{
}
// Your request variable won't be destroyed now, you can use it here
0 голосов
/ 10 августа 2011

Полагаю, что это исключение не относится к той строке, о которой вы думаете. Попробуйте добавить обработчик исключений Application level . А затем используйте Environment.StackTrace для отслеживания строки, на которой произошла ошибка приложения.

Если вы используете Visual Studio, используйте исключения Debug и проверьте Thrown для исключений Common Language Runtime.

Надеюсь, это поможет.

0 голосов
/ 10 августа 2011

Я думаю, что вы ищете;

    try 
    {
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(firstline);
     HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse
     if(HttpWResp.StatusCode ==200)
    {
    //Sucessfull code
    }
    else
    {
        //fail   code

     }

}

catch(Exception ex)
{
// Exception codee here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...