Wyrzucanie niestandardowych wyjątków w Javascript. Jakiego stylu użyć?
Douglas Crockford zaleca zrobienie czegoś takiego:
throw {
name: "System Error",
message: "Something horrible happened."
};
Ale możesz też zrobić coś takiego:
function IllegalArgumentException(message) {
this.message = message;
}
throw new IllegalArgumentException("Argument cannot be less than zero");
a potem:
try {
//some code that generates exceptions
} catch(e) {
if(e instanceof IllegalArgumentException) {
//handle this
} else if(e instanceof SomeOtherTypeOfException) {
//handle this
}
}
Myślę, że mógłbyś dołączyćtype
właściwość w implementacji Crockforda, a następnie zbadanie tego zamiast robieniainstanceof
. Czy jest jakaś korzyść z robienia jednego kontra drugiego?