# 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()` недопустимых параметров.
