> For the complete documentation index, see [llms.txt](https://strctr.gitbook.io/programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://strctr.gitbook.io/programming/01-languages/javascript/01-language/e-controls/e2-exception-handling/05-error-object.md).

# 05. Error Object

Ошибки, как правило, являются экземпляром класса `Error` или одного из его подклассов.

```javascript
try {
  throw new Error("Уупс!");
} catch (e) {
  console.log(e.name + ": " + e.message);
}
```

Каждое исключение имеет три свойства:

* `name` - имя ошибки
* `message` - информация о произошедшей ошибке; строка, переданную функции-конструктору.
* `stack` - трасса стека

Стандартные классы исключений:

* `Error` - общий супертип всех классов исключений;
* `EvalError` - не используется;
* `RangeError` - указывает, что числовое значение превысило допустимый диапазон;
* `ReferenceError` - указывает на использование недопустимой переменной;
* `SyntaxError` - синтаксическая ошибка, возникающая при разборе исходного кода;
* `TypeError` - ошибка, возникающая при недопустимом типе параметра;
* `URIError` - ошибка, возникающая при передаче в `encodeURI()` или `decodeURI()` недопустимых параметров.
