Show / Hide Table of Contents

MSDN.WhiteKnight - Stack Overflow answers

Ответ на "Перехват исключения (стоит ли) C#"

Answer 1046572

Link

Я предполагаю, что вы хотели поместить начало блока try до if (в текущем виде код не имеет смысла).

Большинство методов работы с файлами в .NET автоматически бросают исключение, если файла не существует, так что вам может и не нужна такая проверка в явном виде. У OpenFileDialog по умолчанию есть предупреждение при выборе несуществующего файла. Но так или иначе, нет смысла бросать исключение только из-за того, что пользователь ввел несуществующий файл. Проброс исключений - довольно тяжелая операция, которая предназначена для действительно исключительных ситуаций. Вы могли бы сделать так:

if (!System.IO.File.Exists(openFileDialog1.FileName))
{
    MessageBox.Show("Некорректный путь к файлу " + openFileDialog1.FileName);
    return;
}

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

Обычная практика относительно исключений это одно из двух:

  • Просто позволить программе упасть. В этом случае выведется сообщение и диагностическая информация попадет в системный журнал

  • Перехватить исключение и вывести сообщение, но при этом логировать с помощью собственного механизма его полные данные (ex.ToString())


Content is retrieved from StackExchange API.

Auto-generated by ruso-archive tools.

Back to top Stack Overflow answers (published from sources in GitHub repository). Copyright (c) 2020, MSDN.WhiteKnight. Content licensed under BSD 3-Clause License.
Generated by DocFX