5

window.onerrorでアプリケーションのjsエラーをキャプチャしていますが、開発ツールが開かれていないとChromeでurlパラメータが渡されたURLは常に開かれたURLと等しいです。ChromeでJSエラーをキャプチャする

devツールが開かれている場合、urlが正確な.jsファイルを指している間に、jsエラーが発生しました。

どのように対処していますか?回避策はありますか? - これはページ

  • Uncaught ReferenceError: a is not defined List.js:122を取得した後に受信されました - これは、開かれた開発ツールで同じページをフェッチした後に受信した

    1. Uncaught ReferenceError: a is not defined index:122: -

      そして、もっと明確にするために、ここでは2つの結果です。これは期待される結果です。List.jsファイルにa();コールを入れてテストしました。

    UPD:これは、機能テスト(セレンwebdriverを使用)のために行われている - 私は、さらなる調査のためのjsのエラーをキャプチャしたいです。

  • +0

    修正が必要な例外がある場合は、開発ツールの[Sources]タブを開いて、パネルの左下にある[すべての/未捕捉の例外を一時停止する]を使用します。 –

    +1

    @FabrícioMatté:機能テストのためです。さらなる調査のためにjsエラーをキャプチャしたいと思います。申し訳ありませんが、私は最初にそれを言及していませんでした – zerkms

    答えて

    1

    のは、以下のアーキテクチャを提起してみましょう:

    window.addEventListener("error", handleException, false); 
    
    function handleException(I_sMsg) { 
    
        if (I_sMsg.stack) { 
          sMsg = I_sMsg.stack.replaceAll(getBaseURL(), ""); 
         alert(sMsg); 
        } else if (I_sMsg.message) { 
         alert(I_sMsg.message); 
        } 
    
        return cancelEvent(I_sMsg); 
    } 
    

    今どんなthrow new Error("description");は、if文の最初の部分を通過し、あなたがして解析するための素敵なスタックを持っていますURL。さらに調査した後

    また、結果として(unexisting bibi()関数を呼び出した後、この場合では)次のようなメッセージを持つ、予期しない例外のために働く

    screenshot of an unexpected exception

    、私のフレームワークは、家のいくつかの種類を使用していますすべての単一のアクションがジョブに属しているジョブ管理(スタックに実際に示されているように)。

    ジョブの実行方法は、だから、それはすべての単一の実行は、この1つのtry catchブロック内にカプセル化されることを意味以下の(簡体字)

    try { 
         oTask.func.apply(oTask.obj, oTask.prms); 
        } catch(ex) { 
         handleException(ex); 
         return false; 
        } 
    

    です。ご覧のとおり、例外が捕捉され、ハンドラに渡されます。 エラーではありません。

    私はそれが他のファイルで動作していましたが、呼び出しがカプセル化されていたため、api.jsファイル内で直接フレームワークによって管理されていないフリーコールでした。

    +0

    アプリケーションレベルのエラー処理が行われますが、非関数の呼び出しや未定義の変数のプロパティへのアクセスなど、予期しないjsエラーが発生する可能性があります。 – zerkms

    +0

    はい、うまくいきます。私は、既存の 'a()'関数を呼び出す私の例では、新しい – Sebas

    +0

    のスクリーンショットを追加するつもりです。私が使用しているhandleExceptionが切り捨てられているため、完全なURLが表示されないことに注意してください。しかし、あなたは私があなたが求めたものを信じている完全なURIを持っています。 – zerkms

    1

    その他何か試してみてください本当に助けになるかもしれません。

    最近、Chromeは便利なURLのリストにchrome://inspect/を追加しました(リスト全体についてはchrome://chrome-urls/を参照)。私は残念なことにこれについて読んだツイートやブログの投稿を見つけることができませんが、私はそれが先月にあったと思います。 URLは確かにChrome 28で動作します。

    chrome://inspect/は、開いているすべてのタブを検査のリンクでリストしています。リンクは既存の開いているページにリダイレクトされますが、DevToolsも開きます。

    私はセレンのテストは一つのタブでテスト中のサイトを開くと、2番目のタブにできるように、が開いデベロッパーツールで、ページを点検バックテストページへinspectのリンクをたどるが、今回開くことができると考えていますwindow.onerrorより優れたエラーをキャプチャします。以下のような

    何か:

    document.getElementsByClassName('row')[n].getElementsByTagName('a')[0].click() 
    
    +0

    "と2番目のタブで検査ページを開きます" ---私は確信していませんが、それができれば - これは解決策かもしれない、ありがとう:-) – zerkms

    関連する問題