Бросать пользовательские исключения в Javascript. Какой стиль использовать?

Дуглас Крокфорд рекомендует сделать что-то вроде этого:

throw {
    name: "System Error",
    message: "Something horrible happened."
};

Но вы также можете сделать что-то вроде этого:

function IllegalArgumentException(message) {
    this.message = message;
}

throw new IllegalArgumentException("Argument cannot be less than zero");

а затем сделать:

try {
    //some code that generates exceptions
} catch(e) {    
    if(e instanceof IllegalArgumentException) {
        //handle this
    } else if(e instanceof SomeOtherTypeOfException) {
        //handle this
    }
}

Я думаю, вы могли бы включитьtype свойство в реализации Крокфорда, а затем изучить это вместо того, чтобы делатьinstanceof, Есть ли какое-то преимущество от одного?

Ответы на вопрос(2)

Ваш ответ на вопрос