2011-12-16 21 views
0

私のアプリでは、特定の条件が発生したときに警告を表示してから、プログラムの実行を停止します。私はどこかでこれをthrow()で行うことができますが、その作業を行うことはできません。エラー状態でJavaScriptプログラムの動作を停止しますか?

は、ここで私が試したものです:

function check_for_error(data) { 
    try { 
     if (<error condition>) { 
      throw "error"; 
     } 
    } catch(e) { 
      alert('error occured'); 
       // I want program execution to halt here but it does not, 
       // it continues within the calling code 
    } 
} 
+0

キャッチブロックからエラーをスローし、呼び出し先メソッドで処理できます。そして本質的に終了する。 – Sid

答えて

1

あなたは例外を再スローする必要があります以前のエラーに関係なくコールバック関数を実行します。 w3cから

スローDOC:

構文

例外は、文字列、整数、ブールまたはオブジェクトであることができるスロー例外

+0

ありがとうが、それは私に 'キャッチされない例外'エラーを与えます。 – bethesdaboys

+0

これを行うことで、呼び出し関数をtry/catchに入れ、catchを空にすることで、うまく動作するようになりました。ありがとう。 – bethesdaboys

2

あなたはcatchブロックで別のエラーをスローする必要があります。または、初期エラーをまったくキャッチしないでください。

現在、次のことが起こる:

<error condition me> 
throw "error" 
catch error and Show alert 

"停止" に実行、あなたは(catchブロックで)警告した後throw eを追加する必要があります。

catch(e) { 
    alert('error occurred'); 
    throw e; 
} 

あなたの関数である場合別のtry-catchブロックから呼び出された場合、同様のメカニズムをそのブロックに適用する必要があります。あなたはそれがする非同期のHTTP要求を行った場合たとえば、

... 
catch(e) { 
    alert('error occurred'); 
    throw(e); 
} 
0

ともあなたは

function check_for_error(data) { 
    try { 
     //WHEN ERROR OCCURES 
    } catch(e) { 
      alert('error occured'); 
       // I want program execution to halt here but it does not, 
       // it continues within the calling code 
      throw(e); 
      return; 
    } 
} 
0

投げるだけで、同期rutinesの実行を停止しますことができます。

関連する問題