Простая обработка исключений

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

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

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

Просто, вы должны объявить это снаружи.

fredrik 22.05.2019 12:53

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

Trevor 22.05.2019 13:01

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

ben04rogers 22.05.2019 13:02

Почему вы хотите получить доступ inputFileLines за пределами try блока? Почему бы не написать следующую строку кода ниже List<string> inputFileLines = ...?

Dennis 22.05.2019 13:04

Объявите это как List<string> inputFileLines = null; перед try {

Alex K. 22.05.2019 13:04

я обновил вопрос, любая помощь приветствуется

ben04rogers 22.05.2019 13:16
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
6
90
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
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.

У меня есть длинный участок кода после этого блока исключения, как мне выйти из программы, не получая впоследствии ошибки

ben04rogers 22.05.2019 13:22

How do I access inputFileLines outside of the try statement it it works?

Ваша текущая область находится внутри блока 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");
    }

Изменить для каждого комментария (из заданного мною вопроса)

What do you plan on doing with inputFileLines if its null?

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

thats the thing, i want the program just to stop if its null? But how do i do this

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

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();
}

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

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

Использованная литература:

Метод Application.Exit https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.application.exit?view=netframework-4.8

Другие вопросы по теме