有人可以向我解释为什么 try/catch 不处理“Uncaught SyntaxError”吗?是否可以优雅地处理此类错误,以便 JS 的其余部分运行?
例如:
try { response.write(;); }
catch(e) { console.log(e); }
此代码抛出“未捕获的语法错误:意外的标记;” [Chrome] 浏览器错误而不是跳转到捕获并记录错误对象。您在 Firefox 中也会得到类似的结果;一个抛出的错误,而不是用 catch 处理它。
最佳答案
语法错误不是运行时异常。为了让您的程序能够抛出和捕获异常,它需要能够运行。为了运行,它需要是javascript。上面的示例不是有效的 javascript。当解释器看到第一个无效行并且它甚至没有到达“catch”行时,它会放弃并打印错误。
关于JavaScript:未命中 "Uncaught SyntaxError"[Chrome],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536022/