2015-04-01 156 views
2

我明白是什麼原因導致運行時錯誤。我想了解瀏覽器之後的行爲。當發生javascript運行時錯誤時會發生什麼?

錯誤發生之前附加的事件處理程序是否仍然有效?

如果一個腳本加載的異步在運行時發生錯誤後能夠執行嗎?

基本上,運行時錯誤的災難性程度如何?

+0

_將事件處理程序附加到錯誤仍然有效之前?_試試看! – Mathletics 2015-04-01 15:26:48

+0

這取決於瀏覽器的行爲,你很少或根本沒有控制。如果你有一個運行時錯誤,你最好解決它,不要試圖衡量它有多糟糕,或者依賴於現在可能適用的當前情況,但明天可能無法工作。運行時錯誤意味着腳本中存在錯誤。你需要修復它。 – Lucius 2015-04-01 15:31:11

回答

3

的uncatched運行時錯誤只是停止當前執行,這可能是

  • 腳本
  • 事件處理程序的調用的執行

假設你同時運行時錯誤處理一個事件,如果你的事件處理程序修改了其中的一些,你可能會遇到的唯一問題(除了沒有真正處理事件)是用戶變量的不一致狀態。除此之外,其他事件處理程序不會受到影響。

所以它通常可以被認爲是非災難性的(我想我不必記住這是一個很好的做法,無論如何修復錯誤,並控制檯錯誤是不是一件好事)。

0

每當網頁打開時,所有腳本開始加載。如果任何腳本遇到任何運行時錯誤,則停止執行該腳本。這意味着腳本中的任何其他語句都不會被瀏覽器執行。您可以在瀏覽器的控制檯窗口中找到這些錯誤。但是,您可以使用try catch塊來處理髮生的異常。 例如,請考慮下面的腳本:

<script> 
    var x=10, y=0; 
    /*............... 
    ................. 
    perform some other tasks here 
    This will execute with no error 
    ................. 
    ................*/ 
    var z=x/y; //here error occur 
//below any statements will never execute. 
{ 
    /*................ 
    .................. 
    some operations 
    this block will not execute because a runtime error occurs above. 
    .................. 
    ................*/ 
} 
</script> 

沒有任何進一步的聲明語句後,因爲一個運行時錯誤發生var z=x/y;將執行。

2

您可以使用try/catch/finally塊。使用catch塊可以在錯誤內導航,並且在發生運行時錯誤或發生非法操作時它將運行。請訪問此鏈接,這裏有一些關於try/catch/finally的更多信息http://www.javascriptkit.com/javatutors/trycatch.shtml

運行時錯誤可能是災難性的,取決於它發生的地方以及代碼發生的時間。這樣你就可以崩潰所有的應用程序,或者停止一些插件。

相關問題