JavaScriptのコードで集約例外ハンドラの書き方チートシート。
例外のログを記録したり、画面に謝罪文を表示したりするなど、最低限の例外処理をしておきます。
window.onerror
普通のJavaScriptコードの例外を捕捉する集約例外ハンドラはwindow.onerrorで設定できます。
window.onerror = function (message, url, lineNumber) {
console.log(message);
var msg =
"画面の処理中にエラーが発生しました。" +
"ご迷惑をおかけしております。";
alert(msg);
return true;
};
$.ajaxSetupのerrorオプション
jQueryのAjax処理で結果が404や500だった場合の集約例外ハンドラは$.ajaxSetup()
のerrorオプションで設定できます。
$.ajaxSetup({
error: function (xhr) {
console.log(xhr.responseText);
var msg =
"要求の処理中にエラーが発生しました。" +
"ご迷惑をおかけしております。";
alert(msg);
}
});
Ajax処理に失敗したときに集約例外ハンドラの処理をしたくない箇所では
$.ajax()
呼出し時にerrorオプションにnullを渡して上書きします。
$.ajax({
error: null,
...
}).done(...) {
// 正常時の処理
}).fail(...) {
// その箇所固有の例外処理
});
AngularJSの$exceptionHandler
AngularJS内のJavaScriptコードの例外を捕捉する集約例外ハンドラは$exceptionHandlerで設定できます。
var myApp = angular.module("myApp", []);
myApp.factory("$exceptionHandler", function () {
return function (exception, cause) {
console.log(exception.message);
var msg =
"画面の処理中にエラーが発生しました。" +
"ご迷惑をおかけしております。";
alert(msg);
};
});