Объекты ошибок JavaScript

Различные объекты ошибок, которые вы найдете в JavaScript

JavaScript gives us 8 объекты ошибок, которые возникают в выражении try / catch в зависимости от типа ошибки:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Давайте проанализируем каждый из них.

Error

Это общая ошибка, от которой наследуются все остальные объекты ошибок. Вы никогда не увидите экземпляраErrorнапрямую, но JavaScript вызывает одну из других ошибок, перечисленных выше, которые наследуются отError.

Он содержит 2 свойства:

  • message: описание ошибки, удобочитаемое сообщение, которое должно объяснить, какая ошибка произошла
  • name: тип возникшей ошибки (предполагает значение имени конкретного объекта ошибки, например,TypeErrorили жеSyntaxError)

и предоставляет только один метод,toString(), который отвечает за создание значимой строки из ошибки, которую можно использовать для вывода на экран.

EvalError

Эта ошибка определена в современном JavaScript, но на самом деле она никогда не вызывается JavaScript и остается в целях совместимости. Он был определен в ECMAScript 3, но не присутствует в стандарте, начиная с ECMAScript 5.1.

Он использовался, чтобы указать, что глобальная функцияeval()было использовано неправильно, несовместимо с его определением.

RangeError

АRangeErrorбудет срабатывать, когда числовое значение не входит в допустимый диапазон.

Самый простой пример - когда вы устанавливаете длину массива на отрицательное значение:

[].length = -1 //RangeError: Invalid array length

или когда вы установите его на число выше, чем4294967295

[].length = 4294967295 //4294967295
[].length = 4294967296 //RangeError: Invalid array length

(это магическое число указано в спецификации JavaScript как максимальный диапазон 32-битного целого числа без знака, что эквивалентноMath.pow(2, 32) - 1)

Вот наиболее частые ошибки диапазона, которые вы можете обнаружить в реальных условиях:

ReferenceError

АReferenceErrorуказывает, что было обнаружено недопустимое значение ссылки: программа JavaScript пытается прочитать несуществующую переменную.

dog //ReferenceError: dog is not defined
dog = 2 //ReferenceError: dog is not defined

Имейте в виду, что приведенное выше утверждение создастdogпеременная глобального объекта, если не запускаласьстрогий режим.

Вот наиболее частые справочные ошибки, которые вы можете обнаружить в реальных условиях:

SyntaxError

АSyntaxErrorвозникает при обнаружении синтаксической ошибки в программе.

Вот несколько примеров кода, генерирующего синтаксическую ошибку.

Оператор функции без имени:

function() {
  return 'Hi!'
}
//SyntaxError: function statement requires a name

Отсутствует запятая после определения свойства объекта:

const dog = {
  name: 'Roger'
  age: 5
}
//SyntaxError: missing } after property list

Вот наиболее распространенные синтаксические ошибки, которые вы можете обнаружить в реальных условиях:

TypeError

АTypeErrorпроисходит, когда значение имеет тип, отличный от ожидаемого.

Самый простой пример - это попытка вызвать число:

1() //TypeError: 1 is not a function

Вот наиболее распространенные ошибки, которые вы можете обнаружить в реальных условиях:

URIError

Эта ошибка возникает при вызове одной из глобальных функций, работающих с URI:

  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()

и передача недопустимого URI.

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: