2011-10-14 11 views
1

私は、javascriptがエラーにどのように反応するか(例えば、ReferenceErrorのような)にはかなり興味があります。ランタイムエラーが発生すると、呼び出された関数から戻り、呼び出された関数に失敗するようになります。Javascriptはどのようにエラーに反応しますか?

結果として、フレームスタック内のすべての関数が失敗しますか? (これは学問的好奇心の問題です。誰かがそれを私に説明してくれることを願っています)

ありがとう!

+0

この章ではEllquent JavaScriptに興味があるかもしれません:[エラー処理](http://eloquentjavascript.net/chapter5.html) – sdleihssirhc

答えて

2

JavaScriptの例外処理は、他の言語のエラー処理とほとんど同じです。ブロックのcatchが処理するまでは、エラースタックの呼び出しスタックには、throwが含まれます。 try/catchがなければ、現在の実行は停止します。

catch以下の関数呼び出しはすべて終了します。何も返さず、次のコード行は実行されません。

+0

window.onerrorイベントを使用して、キャッチされていないエラーのハンドルを取得できます。 (注:IE以外のブラウザについてはわかりません) – user961954

1

コールスタックに達して、try ... catchブロックに達するまで続きます。

単純な例on JSFiddleが表示されます。

+1

はい、try catchブロックが見つからないと、最終的に失敗します。また、デバッガを持っていなければ、自動的に失敗します。 – smoothe

関連する問題