MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Перехват исключения (стоит ли) C#"
Answer 1046572
Я предполагаю, что вы хотели поместить начало блока 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.