我遇到了相當煩人的問題。我無法捕捉函數內部引發的錯誤。說實話 - 如果不是這個事實,即使在JavaScript對象中拋出錯誤,我也不會太在意。JavaScript從函數或對象中捕獲異常
這裏的示例代碼:
http://jsfiddle.net/TxsHK/1/(需要Firebug的控制檯來測試該代碼)
function ViewError($CONTENT){
this.content = $CONTENT;
return this.content;
};
try{
$(document).ready(function() {
//--------------
throw ViewError('Test error');
//--------------
});//$(document).ready(function() {
}catch (e) {
if (e instanceof ViewError) {
console.info(e.message);
}
else{
console.warn(e.message);
}
}
給出了一個錯誤
TypeError: e is undefined
爲什麼?函數(或對象)拋出的錯誤應該是完全可捕獲的。這就是try - catch塊的全部目的:從函數中捕獲異常。至少......所以它是用其他語言寫的。
任何人都可以解釋發生了什麼?如何從函數/對象中捕獲異常?
哦......好的。乾杯。感謝您指出這些:)至於在'$(document).ready()'上使用'try' - 我只是用它作爲例子,因爲它是大腳本的一部分,其中'try'實際上在'$(文檔).ready()' - 但我沒有想過在外面使用它可能會成爲一個問題,所以非常感謝您指出這一點! – MarcinWolny