我明白是什麼原因導致運行時錯誤。我想了解瀏覽器之後的行爲。當發生javascript運行時錯誤時會發生什麼?
錯誤發生之前附加的事件處理程序是否仍然有效?
如果一個腳本加載的異步在運行時發生錯誤後能夠執行嗎?
基本上,運行時錯誤的災難性程度如何?
我明白是什麼原因導致運行時錯誤。我想了解瀏覽器之後的行爲。當發生javascript運行時錯誤時會發生什麼?
錯誤發生之前附加的事件處理程序是否仍然有效?
如果一個腳本加載的異步在運行時發生錯誤後能夠執行嗎?
基本上,運行時錯誤的災難性程度如何?
的uncatched運行時錯誤只是停止當前執行,這可能是
假設你同時運行時錯誤處理一個事件,如果你的事件處理程序修改了其中的一些,你可能會遇到的唯一問題(除了沒有真正處理事件)是用戶變量的不一致狀態。除此之外,其他事件處理程序不會受到影響。
所以它通常可以被認爲是非災難性的(我想我不必記住這是一個很好的做法,無論如何修復錯誤,並控制檯錯誤是不是一件好事)。
每當網頁打開時,所有腳本開始加載。如果任何腳本遇到任何運行時錯誤,則停止執行該腳本。這意味着腳本中的任何其他語句都不會被瀏覽器執行。您可以在瀏覽器的控制檯窗口中找到這些錯誤。但是,您可以使用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;
將執行。
您可以使用try/catch/finally塊。使用catch塊可以在錯誤內導航,並且在發生運行時錯誤或發生非法操作時它將運行。請訪問此鏈接,這裏有一些關於try/catch/finally的更多信息http://www.javascriptkit.com/javatutors/trycatch.shtml
運行時錯誤可能是災難性的,取決於它發生的地方以及代碼發生的時間。這樣你就可以崩潰所有的應用程序,或者停止一些插件。
_將事件處理程序附加到錯誤仍然有效之前?_試試看! – Mathletics 2015-04-01 15:26:48
這取決於瀏覽器的行爲,你很少或根本沒有控制。如果你有一個運行時錯誤,你最好解決它,不要試圖衡量它有多糟糕,或者依賴於現在可能適用的當前情況,但明天可能無法工作。運行時錯誤意味着腳本中存在錯誤。你需要修復它。 – Lucius 2015-04-01 15:31:11