Если генерируете некий List, то при не критической ошибке (файл пуст), стоит возвращать
пустой List. Если ошибка критическая (файл не найден, невозможно открыть файл на чтение, невалидный аргумент, нулевой аргумент), то нужно бросать исключение.
private static List<SomeType> ReadFromFile(string path) {
if (path == null) {
throw new ArgumentNullException("path");
}
if (File.Exists(path)) {
string file = File.ReadAllText(path);
...
} else {
throw new FileNotFoundException(path);
}
}
Тогда в вызывающем коде можно делать проверки:
private void doTheBestBtn_Click(object sender, EventArgs e)
{
try {
var myList = ReadFromFile(txtInput.Text);
...
}
catch(ArgumentNullException ex) {
MessageBox.Show("Необходимо указать путь к файлу!");
}
catch(FileNotFoundException ex) {
MessageBox.Show("Указанный файл не найден!");
}
}
PS File.ReadAllText сам бросает некоторые исключения, но допустим, что это самопальный тип.