我遇到了相当烦人的问题。我无法捕获从函数中抛出的错误。老实说 - 如果不是同样适用于从 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 块的全部目的:从函数中捕获异常。至少……在其他语言中也是如此。
任何人都可以解释发生了什么?以及如何从函数/对象中捕获异常?