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を使用する際の推奨ガイドラインです。