3

firefox でエラー メッセージをキャッチする方法が見つかりません。

window.addEventListener("error", handleException, false);

...

function handleException(e) {   
    alert(e);
    return false;
}

...

<script>
throw new Error('sdasd');
</script>

これは非常にうまくhandleExceptionメソッドに入りますが、eパラメーターはerror eventFirefoxの下にあり、関連するメッセージを取得する方法がわかりません。たとえば、クロムではe.message、エラーが発生してキャッチされなくなった後、ウィンドウレベルで発生する自動エラーがあるため、メッセージを取得します(このフィドルを参照してください:最終エラーは「キャッチされていません」)。手動で上げました。

そのため、Firefox で同じ動作をするために (Firefox でフィドルを実行すると、メッセージが「未定義」であることがわかります)、手動の「最後のエラー」アーキテクチャをセットアップするエラー発生関数をカプセル化することで構成される回避策を見つけました。

function err(I_sText) { 
    g_lastManualError = new Error(I_sText);
    throw g_lastManualError; //this variable is global so I can get the message from anywhere
}

したがって、代わりに をthrow new Error(..)呼び出すだけerr(..)です。少なくとも、私の最大の関心事であるユーザー定義の例外については機能します。私のハンドラーhandleExceptionでは、グローバル変数を参照しています。

そうでなければどうすればよいか知っていますか?私はこの解決策に満足していません。

ありがとうございます。

4

1 に答える 1