Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmEcGC 397 of 436 menu
◀ ▶

Общий обработчик исключений в C#

Если нужен запасной вариант для любого сбоя, добавляют catch (Exception ex). Его ставят после всех конкретных типов. Иначе общий блок перехватит исключение раньше, и до узких catch выполнение не дойдет:

try { Console.WriteLine(int.Parse("x")); } catch (FormatException) { Console.WriteLine("format"); } catch (Exception ex) { Console.WriteLine(ex.Message); }

Общий обработчик удобен для логирования и вывода текста, когда тип сбоя заранее неизвестен:

try { Dictionary<string, int> dct = new() { ["x"] = 1 }; Console.WriteLine(dct["y"]); } catch (KeyNotFoundException) { Console.WriteLine("missing"); } catch (Exception ex) { Console.WriteLine("other: " + ex.Message); }

В одном try разберите строку "0" как число и поделите 10 на него. Для DivideByZeroException выведите "zero", для Exception выведите "any". Поставьте блоки в правильном порядке.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить