我正在阅读JavaScript exceptions:
您可以嵌套一个或多个try ... catch语句。如果内心 try ... catch语句没有catch块,封闭 尝试... catch语句的catch块被检查匹配。
我认为我理解正确,并编写了如下测试代码:
try {
try {
throw "error";
}
} catch( e ) {
console.log( e );
}
但得到了这个错误:
Uncaught SyntaxError: Missing catch or finally after try
我清楚地知道我错过了一个问题或最后但是JavaScript文档说我的代码应该有效还是我误解了?
答案 0 :(得分:11)
引用的文字非常具有误导性,因为它说"如果一个内部的try..catch没有一个捕获块"这没有任何意义。它应该只是"如果内部try
没有......"。
在JavaScript中,您不能自己拥有try
;它 有catch
,finally
或两者。所以引用的场景是指{a} try/catch
包含 try/finally
(而非另一个try/catch
):
try {
try {
throw "error";
}
finally {
}
} catch( e ) {
console.log( e );
}
答案 1 :(得分:2)
这里指定:(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/try...catch)
try语句包含一个try块,其中包含一个或多个 语句,和至少一个catch子句或finally子句,或 都。也就是说,try语句有三种形式: