Что нужно знать про Exception, Error и assert во Flutter/Dart?
Что хотят услышать интервьюеры:
Коротко: Exception описывает ожидаемые ошибки приложения, Error чаще означает программную ошибку, а assert проверяет инварианты в debug.
Ответ:
Где применяется:
- бизнес-ошибки лучше моделировать явно
- assert не работает как runtime-валидация в release
- Error обычно не перехватывают для бизнес-логики
Пример:
try {
await api.pay();
}
on ApiException catch (e) {
showError(e.message);
}
assert(config.baseUrl.isNotEmpty); Как отвечать на собеседовании: объясните назначение, границы применения и почему это лучше альтернативы в конкретном сценарии. Типичная ошибка: ловить все через catch (_) без логирования.