Alex25,
Почитай: https://docs.microsoft.com/ru-ru/dotnet/standard/exceptions/best-practices-for-exceptions (https://docs.microsoft.com/ru-ru/dotnet/standard/exceptions/best-practices-for-exceptions)
Цитата оттуда:Обработка общих условий без выдачи исключений
Для условий, которые могут возникнуть, но способны вызвать исключение, рекомендуется реализовать обработку таким способом, который позволит избежать исключения. Например, при попытке закрыть уже закрытое подключение возникает InvalidOperationException. Этого можно избежать, используя оператор if для проверки состояния подключения перед попыткой закрыть его.
C#if (conn.State != ConnectionState.Closed) { conn.Close(); }
Если состояние подключения перед закрытием не проверяется, исключение InvalidOperationException можно перехватить.
C#try { conn.Close(); } catch (InvalidOperationException ex) { Console.WriteLine(ex.GetType().FullName); Console.WriteLine(ex.Message); }
Выбор конкретного способа зависит от того, насколько часто ожидается возникновение данного события.
- Используйте обработку исключений, если событие не происходит очень часто, то есть если событие носит действительно исключительный характер и указывает на ошибку (например, в случае неожиданного конца файла). При использовании обработки исключений в обычных условиях выполняется меньше кода.
- Если событие происходит регулярно в рамках нормальной работы программы, выполняйте проверку на наличие ошибок прямо в коде. Проверка на наличие распространенных условий ошибки позволяет выполнять меньший объем кода благодаря устранению исключений.