Введение в исключения в Dart
Программа опирается на то, что данные и операции ведут себя предсказуемо. На практике так бывает не всегда: строка не превращается в число, индекс выходит за границы списка, делитель оказывается нулем. В таких случаях выполнение запланированного шага теряет смысл или становится невозможным.
Исключение - это сигнал среды выполнения о том, что операция не завершилась нормально. Если исключение не обработать, программа останавливается и выводит сообщение об ошибке. Обработка позволяет сообщить о проблеме, подставить безопасное значение или завершить только часть работы, не останавливая всю программу.
Не каждая ошибка в данных - исключение в смысле
аварийного сбоя. Если пользователь ввел некорректное
число, часто достаточно if и повторного
запроса. Исключения удобны там, где сбой
возникает глубоко в цепочке вызовов или когда
один и тот же участок кода должен пережить
разные сбои.
В Dart для этого служит конструкция try
с блоками catch и finally.
Дальше разберем перехват, типы исключений,
несколько обработчиков и явный сигнал о сбое.
Собственные классы исключений в этом учебнике
не используются - только стандартные типы
платформы.