JavaScript:未命中 "Uncaught SyntaxError"[Chrome]

标签 javascript error-handling console try-catch syntax-error

有人可以向我解释为什么 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/

相关文章:

json - 将Play框架与Scala结合使用,如何使Json验证消息人性化?

iphone - 找不到方法 '-parseRss:entries.'(返回类型默认为 'id')

python - Flask 默认错误处理程序未被调用

show dbs 和 show databases 之间的 MongoDB shell 区别

linux - 清理 linux 控制台的任何输出

javascript - 检测 Firefox 中的停止共享事件

javascript - 如何根据输入字段数组验证禁用提交按钮

javascript - 如何获得元素的右侧位置?

python - 在 Python 中禁用 subprocess.Popen 的控制台输出

javascript - 全屏不适用于 Iphone 6s 和 5s