Douglas Crockforda zaleca robić coś takiego:Rzucanie niestandardowych wyjątków w JavaScript. Który styl użyć?
throw {
name: "System Error",
message: "Something horrible happened."
};
Ale można też zrobić coś takiego:
function IllegalArgumentException(message) {
this.message = message;
}
throw new IllegalArgumentException("Argument cannot be less than zero");
a następnie wykonaj:
try {
//some code that generates exceptions
} catch(e) {
if(e instanceof IllegalArgumentException) {
//handle this
} else if(e instanceof SomeOtherTypeOfException) {
//handle this
}
}
Chyba można obejmują type
Właściwość w implementacji Crockford, a następnie zbadać, zamiast robić instanceof
. Czy jest jakaś korzyść z robienia jednego kontra drugiego?
Dla drugiej osoby, która używa wyjątków w stylu Java, wygląda znacznie ... bardziej znajomo. – NullUserException
Tak, jestem częściowy do drugiego z tego samego powodu. :) –
Jestem za drugim, ponieważ jest bardziej wielokrotnego użytku pod względem czystości kodu. Mówiąc dokładniej, jeśli mam zamiar rzucić ten sam typ wyjątku w kilku miejscach, mój kod będzie bałagan (ogromny) z pierwszym podejściem. – bellpeace