try/catch или Result: как обрабатывать ошибки во Flutter
В Dart сигнатура Future<Location> не показывает, что функция может бросить исключение. Без try/catch сетевой сбой или ошибка разбора JSON могут остаться необработанными.
В материале Code with Andrea показана альтернатива из Dart 3: тип Result возвращает либо Success со значением, либо Failure с исключением. В switch код отдельно разбирает Success и Failure; если убрать один вариант, компилятор сообщит об ошибке.
Цена зависит от структуры кода. Один try/catch перехватывает исключение из всей цепочки асинхронных вызовов. Result делает ошибку частью типа возврата, но каждый промежуточный результат приходится извлекать перед следующим вызовом. Сравнение поможет выбрать подход для Flutter-приложения.
Post #4729
1.3K

- ❤ 1