【发布时间】:2018-01-03 03:25:26
【问题描述】:
首先,catch 子句没有被执行。但我在浏览器中收到“SyntaxError: missing exponent”错误。我想知道是不是因为加载时间?或者我的设置不对。
我想为不正确的变量名生成自定义错误。
try {
var 1ele = 1;
} catch (error) {
if (error instanceOf SyntaxError) {
throw new SyntaxError("There is a syntax error!");
}
}
感谢您的帮助。
【问题讨论】:
-
您遇到语法错误。
catch捕获运行时错误。 (除非你正在做evals,否则不要试图捕捉语法错误。)还有两件事......不要以数字开头你的变量并且你的变量有指数错误,因为它正在读取1e并思考它是一个指数,指数跟在 e 之后。 -
@pepperjack — 大部分都很好,但
var 1ele是一个直接的语法错误:var必须后跟一个有效的标识符,它不能以数字开头,因此在1处失败,解析器不会再进一步。 ;-) -
@RobG 正如他所说,他的语法错误是
SyntaxError: missing exponent。在他的情况下确实达到了。你没有错,变量存在语法错误,但对于他的浏览器,它在上述错误处停止(或至少抛出)。 -
我不确定你要做什么,但这不是一个有效的 js 变量名。
-
@pepperjack — 奇怪,没有理由这样做,显示了解析器的变幻莫测。 Chrome 给出了“无效或意外的令牌”,这是预期的(而 IE 给出了“预期的标识符”)。
标签: javascript error-handling try-catch