Для предотвращения критических ошибок в коде программы необходимо использовать исключения.
Конструкция try...on...catch...finally идеально подходит для этого.
Если при выполнении кода в try возникает ошибка - выполняется часть on...catch по подходящему условию исключения, вне зависимости от того было ли найдено нужное условие и была ли в принципе ошибка в try следом выполняется finally
double errorDouble; try { errorDouble = 2 / 0; } catch (e) { print('Error: $e'); } finally { print ( 'done' ); } // Error: IntegerDivisionByZeroException // done
Список возможных типов исключений:
Также запустить исключение можно принудительно в коде с помощью throw.