2015-05-05 152 views
-1

我正在一個例子中工作,並在某些時候(當某些特定事件發生時)停止執行javascript代碼。如何中止或停止JavaScript執行?

這裏就是我檢測錯誤(行號36在DEMO)的行:

if(error_print === null){ 
       s += "errors+='"+"You have error in row :" + (i+1) + "';"; 
       //here I want to stop the code execution 

      } else{ //continue...} 

所以我想:

1-當檢測該誤差

停止代碼執行

2 - 清潔從是打印的消息#output textarea

(所以如果發生錯誤我只想有個電子郵件錯誤#errors textarea)。所以,我不想讓#output文本區域有這樣的價值觀:

This " is my first program 
My name is XXX 

,但我想這是錯誤檢測後空。

我試過使用return;throw new Error('You have an error');但這些功能不起作用。請你能幫助我嗎?提前致謝。

Here is the demo you can play with.

+0

拋出一個異常並捕獲一個外部try/catch塊 – BeNdErR

+0

@cory其實我並不熟悉這個概念。你能幫我麼?建議從哪裏開始閱讀將有助於我。謝謝 – orsina

+0

我懷疑你真的想停止代碼執行,因爲這會阻止步驟2成爲可能。 –

回答

1

首先,請允許我對代碼的一些言論在你的提琴:

  • 的,如果一段時間內內的,如果內部的,如果內部的,如果一個函數內部。這只是可怕的代碼讀取和錯誤等待發生。請重構該代碼(使用早期的回報,將其劃分爲函數,...)。我的經驗法則絕不會超過2層深。良好的書面代碼應該記錄自己,我不能說實話你的代碼是自我解釋的。
  • 你爲什麼插入該腳本集團?我根本看不到這一點。這幾乎和使用eval()一樣糟糕...
  • 嘗試使用明智的變量名稱。 s在你寫代碼的時候看起來很清楚,但我向你保證在六個月內你不得不去尋找一個bug。

請注意,我只是想在這裏幫助你,而不是試圖讓你失望。

至於你的問題,爲什麼你不只在某處保存一個錯誤布爾值。默認爲false,發生錯誤時將其設置爲true。在輸出結果之前,只需檢查該布爾值的狀態。如果屬實,請不要輸出任何內容。這應該是迄今爲止最簡單的解決方案。

var hasErrors = false; 
... 
// an error occurs 
if (this.notRight) { hasErrors = true; } 
... 
if (! hasErrors) { 
    $('#output').html(output); 
} 
+0

感謝您的想法。事實上,我知道我的代碼非常混亂:(當然,我明白你正在試圖幫助我...我現在會嘗試組織它。 – orsina