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

Класс StateError

Класс StateError представляет собой ошибку, которая возникает, когда объект находится в состоянии, не позволяющем выполнить запрошенную операцию. В конструктор мы передаем строку с сообщением об ошибке - она описывает, почему операция не может быть выполнена. Класс наследуется от Error, а не от Exception, поэтому перехватывать его следует через on StateError. Обычно эта ошибка выбрасывается методами коллекций, итераторов и других объектов, которые требуют определенного внутреннего состояния перед вызовом.

Синтаксис

StateError(String message)

Пример

Давайте создадим и выбросим ошибку состояния с помощью ключевого слова throw:

void main() { try { throw StateError('Object is not initialized'); } on StateError catch (e) { print(e.message); } }

Результат выполнения кода:

"Object is not initialized"

Пример

Давайте получим ошибку состояния при попытке прочитать элемент из пустого итератора:

void main() { Iterable<int> items = []; Iterator<int> it = items.iterator; try { print(it.current); } on StateError catch (e) { print('StateError: ${e.message}'); } }

Результат выполнения кода:

"StateError: No element"

Пример

Давайте проверим, что ошибка состояния является экземпляром класса Error, а не Exception:

void main() { StateError err = StateError('Bad state'); print(err is Error); print(err is Exception); }

Результат выполнения кода:

true false

Смотрите также

  • ключевое слово throw,
    которое выбрасывает ошибку
  • конструкция try,
    которая оборачивает опасный код
  • конструкция catch,
    которая перехватывает ошибку
  • класс Error,
    базовый класс для ошибок
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить