捕获 JavaScript 中抛出的所有异常的最佳技术是什么?
显然,最好的技术是使用 try...catch。但是对于异步回调等,这可能会变得棘手。
我知道 IE 和 Gecko 浏览器支持 window.onerror,但是 Opera 和 Safari 呢?
这里有一堆测试用例,我希望它们有一个集中的异常处理解决方案:
// 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);
}
如果您想到任何其他测试用例,请提及它们。其中一些案例提到了 ErrorHandler.handleError 方法。这只是使用 try...catch 时的建议指南。