[JavaScript]例外発生時に、catch句でエラーの発生場所を取得する

JavaScriptのtry-catchのcatch句で取得できる例外オブジェクトは、エラーの内容を伝えるためにnameとmessageプロパティを持っています。

JavaScriptの標準規格では、例外オブジェクトが持っているプロパティは2つのみですが、firefox等の一部のブラウザでは、これらに加えてエラーが発生したファイルや行番号の情報も取得することが可能です。

これらの情報はfirefoxの場合はfileName,lineNumberで取得できますが、標準仕様からの拡張である為、IEでは取得することが出来ません。


ブラウザの互換性まで考慮したうえで、以下のようなエラー処理を書いておくとデバッグ作業が捗ります。

function errorFunc() {
    try {
        // 例外を発生させる(存在しないオブジェクトのプロパティを参照)
        a.data;
 
    } catch ( e ) {
        var ermsg = "例外が発生しました :" + e.message;
 
        if ( e.fileName && e.lineNumber ) {
            // エラーの発生場所が取れる場合は、情報を追加する
            ermsg += "\nファイル:" + e.fileName + ", 行:" + e.lineNumber;
        }
        console.log( ermsg );
    }
}
 
errorFunc();


関連記事

コメントを残す

メールアドレスが公開されることはありません。