Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtPmExFi 369 of 412 menu
◀ ▶

Блок finally в Dart

Иногда нужно выполнить код и при успехе, и при ошибке: вывести итог, сбросить флаг, напечатать разделитель. Для этого после catch добавляют блок finally. Он запускается всегда, когда завершилась пара try-catch.

Запишем общий вид конструкции:

try { // risky code } on SomeException catch (e) { // handle } finally { // always runs }

Обратимся к несуществующему индексу списка и в finally выведем количество элементов:

var nums = [10, 20, 30]; try { print(nums[9]); } on RangeError catch (e) { print("bad index"); } finally { print(nums.length); }

Если исключения не было, catch пропускается, но finally все равно выполнится:

var nums = [4, 5, 6]; try { print(nums[0]); } on RangeError catch (e) { print("bad index"); } finally { print("end"); }

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

Даны a и b. Выведите результат a ~/ b. При делении на ноль выведите "error". В конце в любом случае выведите "finished".

Дана строка line. Выведите число из int.parse(line). При FormatException выведите "nan". Затем в любом случае выведите длину строки line.

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