Spec-Zone.ru › Dart 1

dart:core

Класс Error

Объекты Error, выбрасываемые в случае сбоя программы.

Объект Error представляет собой сбой программы, которого программист должен был избежать.

Примеры включают вызов функции с недопустимыми аргументами или даже с неправильным количеством аргументов, или вызов её в момент, когда это запрещено.

Это не ошибки, которые вызывающий должен ожидать или перехватывать — если они возникают, программа содержит ошибку, и завершение программы может быть самым безопасным ответом.

При принятии решения о том, что функция выбрасывает ошибку, условия, в которых это происходит, должны быть чётко описаны, и они должны быть обнаруживаемы и предсказуемы, чтобы программист, использующий функцию, мог избежать запуска ошибки.

В таких описаниях часто используются слова «должен» или «не должен» для описания условия, и если вы видите такие слова в документации функции, то невыполнение требования, скорее всего, приведёт к выбросу ошибки.

Пример (из String.contains):

   `startIndex` must not be negative or greater than `length`.

В этом случае ошибка будет выброшена, если startIndex имеет отрицательное или слишком большое значение.

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

Все значения, кроме null , могут быть выброшены в Dart. Объекты, расширяющие Error , обрабатываются особым образом: в первый раз при их выбросе трассировка стека в точке выброса записывается и хранится в объекте ошибки. Она может быть получена с помощью геттера stackTrace. Объект ошибки, который просто реализует Error, а не расширяет его, не будет автоматически сохранять трассировку стека.

Объекты Error также используются для системных сбоев, таких как переполнение стека или ситуация с недостатком памяти.

Поскольку ошибки не созданы для перехвата, нет необходимости для подклассов различать ошибки. Вместо этого подклассы были созданы для того, чтобы упростить создание групп связанных ошибок с согласованными сообщениями об ошибках. Например, метод String.contains будет использовать RangeError, если его startIndex не находится в диапазоне 0..length, что легко создаётся с помощью new RangeError.range(startIndex, 0, length).

Реализуется
  • AbstractClassInstantiationError
  • ArgumentError
  • AssertionError
  • AsyncError
  • CastError
  • ConcurrentModificationError
  • CyclicInitializationError
  • FallThroughError
  • JsonUnsupportedObjectError
  • NoSuchMethodError
  • NullThrownError
  • OutOfMemoryError
  • RemoteError
  • StackOverflowError
  • StateError
  • UnimplementedError
  • UnsupportedError

Статические методы

safeToString(Object object) → String

Безопасное преобразование значения в описание типа String.

Конструкторы

Error()

Свойства экземпляров

stackTrace → StackTrace
только для чтения
hashCode → int
только для чтения, унаследованное

Хеш-код этого объекта.

runtimeType → Type
только для чтения, унаследованное

Представление типа объекта во время выполнения.

Операторы

operator ==(other) → bool
унаследованное

Оператор равенства.

Методы экземпляров

noSuchMethod(Invocation invocation) → dynamic
унаследованное

Вызывается при доступе к несуществующему методу или свойству.

toString() → String
унаследованное

Возвращает строковое представление этого объекта.

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Error-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API