21

IE 8 で JavaScript 例外がスローされた場合、そのスタック トレースを確認するにはどうすればよいですか?

たとえば、jQuery からの次のコードは、例外をキャッチして再スローします。Visual Studio (2012) でデバッグすると、例外 ('e') が jQuery によってキャッチされると実行が中断されますが、例外の発生元のスタック トレースを確認することはできません。

// resolve with given context and args
resolveWith: function( context, args ) {
    if ( !cancelled && !fired && !firing ) {
        firing = 1;
        try {
            while( callbacks[ 0 ] ) {
                callbacks.shift().apply( context, args );
            }
        }
        // We have to add a catch block for
        // IE prior to 8 or else the finally
        // block will never get executed
        catch (e) {
            throw e;
        }
        finally {
            fired = [ context, args ];
            firing = 0;
        }
    }
    return this;
}

stacktrace.jsライブラリを試してみましたが、ブラウザーが IE 8 の場合は例外を無視するようで、現在のフレームのスタック トレースを生成するようにフォールバックするだけです。

編集:

以下のスクリーンショットからわかるように、例外にはスタックに関連するプロパティがありません。

JavaScript 例外オブジェクト

4

0 に答える 0