【发布时间】:2021-04-22 19:23:57
【问题描述】:
在 Chrome 上(但不在 Firefox 上),
JSON.parse("")
因“脚本错误”而失败。您可以通过运行上面的脚本或运行https://jsfiddle.net/xupf27nh/1/ 来重现它。为什么脚本错误?这里没有 cors 活动...?
try {
JSON.parse("")
} catch(e) {
throw e;
}
正确打印错误消息"message": "Uncaught SyntaxError: Unexpected end of JSON input",。为什么这次不一样?为什么不
a.b.c.d.e.f()
script error 失败但正确显示错误消息?
【问题讨论】:
-
CORS?在 Chrome 中我得到
VM28:1 Uncaught SyntaxError: Unexpected end of JSON input -
@phybarin 我不认为他真的想解析一些东西而不是理解未捕获异常的行为。
-
为什么你认为 CORS 和脚本错误相关?也不确定你在哪里得到脚本错误。应该是我在运行上面的示例时清楚地看到的 SyntaxError 和 ReferenceError。
-
对于那些对这个问题感到困惑的人。第一个代码块确实在 Chromium 87.0.4280.66 i.stack.imgur.com/Jz09h.png 上产生了“脚本错误”
-
似乎blog.sentry.io/2016/05/17/what-is-script-error 解释了为什么包装成 try catch 会使这段代码抛出正确的错误:它与 CORS 有关。但是它没有解释为什么浏览器之间的行为不同。
标签: javascript google-chrome exception