LoginSignup
45
46

More than 3 years have passed since last update.

JavaScriptの集約例外ハンドラチートシート

Last updated at Posted at 2014-02-05

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);
    };
});
45
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
46