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

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

Сделайте иерархию исключений для API: базовый класс ApiException и наследники NotFoundException, UnauthorizedException.

Используйте несколько блоков on в одном try-catch для разных типов исключений.

Используйте catchError для обработки ошибок Future.

Используйте rethrow после логирования ошибки в catch.

Сделайте функцию safeDivide с обработкой деления на ноль через ArgumentError или возврат null.

Обработайте несколько типов исключений в catch: FormatException, ArgumentError и общий Exception.

Используйте try/finally без catch для гарантированной очистки ресурса (например, закрытие «соединения» в finally).

Сделайте retry через try-catch в цикле: повторите операцию до 3 раз при ошибке.

Сделайте функцию validateAge с ArgumentError, если возраст меньше 0 или больше 150.

Сравните подход с исключениями и тип Result<T> (успех/ошибка без throw): реализуйте оба варианта функции деления и кратко опишите, когда удобнее исключения, а когда — явное Result.

// набросок Result: // sealed class Result<T> {} // class Ok<T> extends Result<T> { final T value; ... } // class Err<T> extends Result<T> { final String message; ... }
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить