РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
444 of 723 menu

Ветка on

Ветка on используется в конструкции try-catch для перехвата исключений конкретного типа. В первом параметре указывается тип исключения, которое нужно поймать, во втором - имя переменной, в которую будет записан объект исключения. Если тип исключения совпадает с указанным, выполняется соответствующий блок кода. Веток on может быть несколько - тогда обрабатываются разные типы исключений по отдельности.

Синтаксис

try { // код, который может вызвать исключение } on ExceptionType catch (e) { // обработка исключения }

Пример

Давайте перехватим исключение типа FormatException при попытке преобразовать строку в число:

void main() { try { int.parse('abcde'); } on FormatException catch (e) { print('Caught: ${e.message}'); } }

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

"Caught: Invalid radix-10 number (at character 1) abcde ^ "

Пример

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

void main() { try { List<int> res = [1, 2, 3]; print(res[5]); } on RangeError catch (e) { print('Range error: ${e.message}'); } on FormatException catch (e) { print('Format error: ${e.message}'); } }

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

"Range error: Index out of range"

Пример

Давайте перехватим исключение типа RangeError при обращении к элементу списка по несуществующему индексу:

void main() { try { List<int> res = [1, 2, 3]; print(res[10]); } on RangeError catch (e) { print('Caught RangeError'); } }

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

"Caught RangeError"

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

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