2013-07-04 39 views
-1

是否有可能通過特定的錯誤信息在特定條件下終止腳本?異常不是一種選擇,因爲它們可以被捕獲,從而避免終止。如何發生致命錯誤或類似錯誤?

更新:

我寧願普遍的做法,但如果有沒有,那麼它對於在瀏覽器的JavaScript。錯誤應該是沉默的,並且錯誤消息應該只進入瀏覽器錯誤日誌。

+1

您的腳本是否在瀏覽器中運行?如果您不希望它是可捕獲的,那麼向誰提供您的錯誤消息?也許你應該讓你的問題不太模糊。 –

+0

@dystroy,對不起,我更新了這個問題。 – Septagram

回答

-1

不幸的是,我只能設法通過以下醜陋的解決方法來實現:

var failWithFatalError; // A non-existent function 
console.error (message + ' in ' + homebrewStackTraceFunction()); 
failWithFatalError(); 
1

如果你的代碼是一個try語句裏面,你正在尋找一種方法來阻止它的某些錯誤,那麼我認爲你正在尋找finally塊:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Statements?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FStatements#The_finally_Block

從上述站點(和編輯惱人alert()console.log()),你可以找到這個例子:

function f() { 
    try { 
     console.log(0); 
     throw "bogus"; 
    } catch(e) { 
     console.log(1); 
     return true; // this return statement is suspended until finally block has completed 
     console.log(2); // not reachable 
    } finally { 
     console.log(3); 
     return false; // overwrites the previous "return" 
     console.log(4); // not reachable 
    } 
    // "return false" is executed now 

    console.log(5); // not reachable 
} 
f(); // alerts 0, 1, 3; returns false 
+0

但是我不需要繼續執行,而且我也不知道'finally'對我有什麼幫助。我只需要腳本去死,然後。 – Septagram

+0

請注意,在此示例中未執行最後一個console.log(5),因此意味着一旦啓動了非捕獲異常,該進程將在此處死去。發生這種情況是因爲最後返回false;在最後的聲明。這個try語句是在函數內部的,所以它只停止函數,但是如果你把它放在腳本的周圍,它會在你啓動一個未捕獲的異常時停止腳本。 – user688877