Обработка ашыбок
try...catch...finally
Состоит из трех блоков.
Принцип работы:
- Выполняется код внутри try;
- Если в нем нет ошибок, блок catch игнорируется и выполнение переходит в блок finally и далее;
- Если есть ошибка, то выполнение переходит в блок catch, потом в finally и далее;

Объект ошибки
При возникновении ошибки в блоке try, JavaScript генерирует объект, содержащий детали ошибки и передает его в блок catch.
Объект имеет следующие основные свойства:
- name - имя типа ошибки. Например, ReferenceError, SyntaxError, TypeError;
- message - текстовое сообщение о деталях ошибки;
- stack - текущий стэк вызова. Строка, содержащая информацию о последовательности вызовов, которые привели к ошибке;

Генерация собственных ошибок
Для этого нужно просто писать код использовать оператор throw <errorObj>.
В качестве объекта ошибки можно передать что угодно. Но желательно, чтобы это был именно объект ошибки. Для его создания в js есть встроенные конструкторы для разных типов ошибок.


Проброс исключений
- Блок catch получает все ошибки;
- В блоке catch(err) {...} мы анализируем объект ошибки err;
- Если мы не знаем как её обработать, тогда делаем throw err;

Полезные ссылки
Про ошибки
By frontschool-nsk
Про ошибки
- 105