2

だから私はニコラス・ザカスの「professionalJavascript」で読んだものに頭を悩ませようとしています。例として次のコードがあります。

window.onerror = function(message, url, line){
alert(message);
return false;
};

そして、「falseを返すことで、この関数は事実上、ドキュメント全体のtry-catchステートメントになり、未処理のランタイムエラーをすべてキャプチャします。このイベントハンドラーは、ブラウザーによって報告されるエラーに対する最後の防御線です。」

だから私の質問は、このコードはスクリプトの実行が停止するのを防ぎ、エラーが発生するのでしょうか?または、実行を停止するエラーはありますか?ありがとう。


編集:おそらくより良い質問は、スクリプトがエラーに遭遇したときにスクリプトが実行を停止するのを防ぐための良い方法ではないのはなぜかということです。

4

2 に答える 2

0

非常に簡単なテストでは、これは当てはまらないことが示されています(少なくともChromeでは)。

window.onerror = function(message, url, line){
    alert(message);
    return false;
};
throw 'Catch this error';

アラートはありません。キャッチされなかった例外がコンソールに表示されます。

于 2012-05-28T19:57:11.113 に答える
0

例外が無視されるかどうかに関係なく、構文エラーのようなものは致命的と見なされると確信しています。

これを使用するのは悪い考えです。これは、ブラウザのエラーコンソールにすでに完全に適切な例外処理メカニズムがあるためですが、ほとんどの場合、サイトにエラーがある場合、ユーザーの顔にエラーを吹き付けても、エラーが返ってこない可能性があります。

于 2012-05-28T19:57:43.000 に答える