Простая обработка исключений - PullRequest
1 голос
/ 22 мая 2019

Эй, если у меня есть это исключение:

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}

Как получить доступ к inputFileLines вне оператора try, если это работает?

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Как мне получить доступ к inputFileLines вне оператора try, если это работает?

Ваша текущая область находится в блоке try (область видимости блока) и доступна только в нем ...

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}

Если вы хотите получить доступ к нему за пределами try, вам необходимо переместить область действия этого параметра за пределы (область действия метода), как уже упоминалось.

 List<string> inputFileLines = null;
 try
    {
        inputFileLines = GetInputFileFormatted(mailFile);
    }
    catch (FileNotFoundException ex)
    {
        Console.WriteLine("File not found");
    }

Редактировать за комментарий (из вопроса, который я вам задал)

Что вы планируете делать с inputFileLines, если он нулевой?

Ваш ответ был:

вот и все, я хочу, чтобы программа просто остановилась, если она нулевая? Но как я делаю это

Причина, по которой я спросил это, заключается в том, что вам не нужно объявлять об этом снаружи, если вы хотите выйти из приложения. Найдите метод Application.Exit , который сообщает всем обработчикам сообщений, что они должны завершиться, а затем закрывает все окна приложений после обработки сообщений.

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
    if(inputFileLines == null)
       System.Windows.Forms.Application.Exit();
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
    System.Windows.Forms.Application.Exit();
}

Теперь, если этот список пуст или выброшено исключение, он выйдет из приложения.

ИМХО проверьте область видимости переменных , чтобы лучше понять, как они доступны.

Ссылки:

Приложение. Метод выхода https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.application.exit?view=netframework-4.8

0 голосов
/ 22 мая 2019
List<string> inputFileLines = null;
try
{
    inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}
//now you can access inputFileLines outside of 'try' and check if it is null or not.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...