JavaScript-Ausnahmebehandlung

Was ist die beste Technik, um ALLE in JavaScript ausgelösten Ausnahmen abzufangen?

Offensichtlich ist die beste Technik, try ... catch zu verwenden. Aber mit ansynchronen Rückrufen und so weiter kann das schwierig werden.

Ich weiß, dass IE- und Gecko-Browser window.onerror unterstützen, aber was ist mit Opera und Safari?

Hier sind einige Testfälle, für die ich eine zentrale Ausnahmebehandlungslösung haben möchte:

// ErrorHandler-Test1
var test = null;
test.arg = 5;
// ErrorHandler-Test2
throw (new Error("Hello"));
// ErrorHandler-Test3
throw "Hello again";
// ErrorHandler-Test4
throw {
    myMessage: "stuff",
    customProperty: 5,
    anArray: [1, 2, 3]
};
// ErrorHandler-Test5
try {
    var test2 = null;
    test2.arg = 5;
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test6
try {
    throw (new Error("Goodbye"));
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test7
try {
    throw "Goodbye again";
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test8
try {
    throw {
        myMessage: "stuff",
        customProperty: 5,
        anArray: [1, 2, 3]
    };
} catch(e) {
    ErrorHandler.handleError(e);
}

Wenn Sie an andere Testfälle denken, erwähnen Sie diese bitte. In einigen dieser Fälle wird eine ErrorHandler.handleError-Methode erwähnt. Dies ist nur eine empfohlene Richtlinie für die Verwendung von try ... catch.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage