2011-12-16 60 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

您可以尝试从catch块中抛出错误,然后在callee方法中处理它。基本上退出。 – Sid 2011-12-16 19:10:45

回答

1

必须重新抛出异常:

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

谢谢,但这给了我一个'未捕获的异常'错误。 – bethesdaboys 2011-12-16 21:37:59

2

你应该在catch块中抛出另一个错误。或者根本不抓住最初的错误。

目前,发生以下情况:

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

要 “叫停” 的执行,你必须提醒后添加throw e(在catch块):

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

如果你的功能从另一个try-catch块中调用,你还必须对该块应用类似的机制。

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的执行,例如,如果你做一个异步HTTP请求时,它会执行回调函数而不管以前的错误。从w3c

投掷DOC:

语法

抛出异常

例外可以是一个字符串,整数,布尔值或对象。

相关问题