2014-04-16 17 views
1

我正在將我的代碼封裝到try/catch塊中,並且我決定對它進行測試以瞭解它是如何工作的。 下面是一個簡單的代碼片段,會產生一個語法錯誤 - trigge rHandlerJavaScript:Try/Catch - 我在這裏做錯了什麼?

try{ 
    $(document).trigge rHandler('fbload'); 
}catch(e){ 
    alert(e); 
} 

不過我沒有收到警報!相反,該錯誤作爲未處理的語法錯誤記錄在控制檯中。我期待Try塊中產生的任何錯誤會自動傳遞到Catch部分,我可以用它做任何事情?爲什麼這看起來不起作用?

+0

您無法處理語法錯誤。 –

回答

4

try..catch將捕獲在運行時發生的異常。但語法錯誤發生在解析時間本身。所以,當代碼

$(document).trigge rHandler('fbload'); 

遇到,JavaScript嘗試解析表達式。但它不能。所以它是無法用語法錯誤立即失敗,這就是爲什麼它不被except塊捕獲。

+1

...如果它們在使用'eval'運算符解析時不會發生。 – VisioN

+0

有什麼方法可以捕捉這些類型的異常嗎? – user1775598

+0

@ ^發明新瀏覽器的時間! :) –

相關問題