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

Задачи на исключения в Dart. Часть 3

Сделайте функцию readFileSafe с обработкой IO-ошибок при чтении файла.

Сделайте wrapper tryOperation для логирования ошибок: принимает void Function(), ловит любое исключение и печатает его.

Используйте try/catch с возвратом nullable-значения: при ошибке парсинга верните null.

Сделайте custom ValidationException с полем message.

Сделайте функцию parseEmail с проверкой через ArgumentError, если строка не содержит '@'.

Сделайте async-функцию, которая внутри await вызывает падающий Future. Оберните вызов в try/catch и выведите текст ошибки. Покажите, что await позволяет ловить ошибки Future обычным try/catch.

Future<int> failing() async { await Future.delayed(Duration(milliseconds: 100)); throw Exception('сбой сети'); }

Сделайте функцию chainOperations с обработкой ошибок: последовательно выполните три шага, при ошибке на любом шаге прервите цепочку и верните сообщение.

Сделайте generic-wrapper Result<T> с вариантами успеха и ошибки. Добавьте функцию Result<T> runCatching<T>(T Function() block), которая выполняет block и при исключении возвращает ошибку вместо throw.

// пример использования: // final result = runCatching(() => int.parse('abc'));

Сделайте комплексную задачу с try/catch/finally: откройте «ресурс», выполните работу, обработайте ошибку и гарантированно закройте ресурс в finally.

Объясните, когда не нужно использовать exceptions (например, ожидаемые бизнес-ошибки лучше моделировать через Result или nullable-возврат).

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