Бросать пользовательские исключения в 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
, Есть ли какое-то преимущество от одного?