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

Блок catch

После try пишут один или несколько catch с типом исключения. Срабатывает первый подходящий обработчик; более общий тип, например Exception, ставят ниже конкретных. Условный отбор задают через when.

Синтаксис

try { } catch (Конкретное) { } catch (Exception) { }

Пример

Давайте поймаем DivideByZeroException отдельным catch:

using System; class Program { static void Main() { try { int res = 1 / 0; } catch (DivideByZeroException) { Console.WriteLine("zero"); } catch (Exception) { Console.WriteLine("other"); } } }

Результат выполнения кода:

"zero"

Пример

Давайте бросим InvalidOperationException и попадём во второй catch:

using System; class Program { static void Main() { try { throw new InvalidOperationException("abcde"); } catch (DivideByZeroException) { Console.WriteLine("zero"); } catch (Exception) { Console.WriteLine("other"); } } }

Результат выполнения кода:

"other"

Пример

Давайте прочитаем сообщение в catch с переменной исключения:

using System; class Program { static void Main() { try { throw new InvalidOperationException("abcde"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }

Результат выполнения кода:

"abcde"

Смотрите также

  • блок try,
    перед которым ставят catch
  • фильтр when,
    который уточняет выбор catch
  • блок finally,
    который идёт после обработчиков
  • оператор throw,
    который создаёт исключение для catch
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить