В JavaScript есть обработка исключений. try-catch-finally, throw, всё как у взрослых. Большинство программистов, правда, ими не пользуется, но не в этом суть.
И вот мы пишем, допустим, библиотеку и хотим, чтобы её функции в случае чего бросали определённые исключения. Язык позволяет нам здесь бросать что угодно, например, строку: throw "Ой, ошибка, ошибка!";.
Но, это не наш путь. Есть предопределённые типы ошибок, унаследованные от Error и есть стандарт, который говорит нам об объекте с полями name и message.
MDN показывает нам, как сделать свой «класс» исключений, унаследованный от Error:
// Create a new object, that prototypally inherits from the Error constructor. function MyError(message) { this.name = "MyError"; this.message = message || "Default Message"; } MyError.prototype = new Error(); MyError.prototype.constructor = MyError; |
Мозиловцы правда здесь согрешили и использовали для создания прототипа рабочий конструктор Error. Сделаем по правильному:
Остальной текст под катом

