0

以前はあまり使用していませんでしたが、使用throw new ReferenceErrorしていると、スクリプトが停止することがわかりました。

alert("a");  //Yes
throw new ReferenceError("Error.");  //Yes
alert("b");  //Nope

http://jsfiddle.net/DerekL/uKEZ4/

スクリプト全体を停止せずに、コンソールにエラーをスローしたいだけです。私はこれをやろうとしました:

alert("a");  //Yes
try{
    throw new ReferenceError("Error.");  //Yes
}catch(e){}
alert("b");  //Yes

http://jsfiddle.net/DerekL/uKEZ4/1/

これは機能しますが、これが最善のアプローチではないと思います。スクリプトを停止せずにエラーメッセージを表示するための最良の方法は何ですか?

PS:

console.warn("Error");

IEでは動作しません。</ p>

4

2 に答える 2

3

この動作は仕様によるものです。JavaScriptでの例外処理は、C#、Java、Rubyなどの他の多くの言語と同じように機能します。

例外がスローされると、スタックが巻き戻さ、 (実行を「再開」する)でキャッチされるまでコードの実行がスキップされます。catchがない場合はcatch、コードの最後を完全にスキップします(スクリプト要素、ソースファイル、REPLなど)。finally(実行を「再開」する)場合のオプションでもありますが、On Error Resume Next;のようなものはありません。それはJavaScriptではありません。

この動作を変更するものは何もありません。(サポートするためにIEをシミングすることをお勧めしconsoleます。)

于 2012-05-28T00:37:23.887 に答える
0

Error単にObject.whataeverあなたが何であれthrow、彼らは常にexecフローを壊します。

于 2012-05-28T00:37:17.283 に答える