Benutzerdefinierte Ausnahmen in Javascript auslösen. Welchen Stil soll ich verwenden?

Douglas Crockford empfiehlt Folgendes:

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

Sie könnten aber auch so etwas tun:

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

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

und dann mache:

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

Ich vermute, Sie könnten eintype Eigenschaft in Crockfords Implementierung und dann untersuchen, dass anstelle eines zu tuninstanceof. Gibt es einen Vorteil, wenn man eins gegen das andere macht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage