首先不执行catch子句。但是我在浏览器中收到“SyntaxError:missing exponent”错误。我想知道是不是因为加载时间?或者我的设置不对。
我想为不正确的变量名称设置自定义错误。
try {
var 1ele = 1;
} catch (error) {
if (error instanceOf SyntaxError) {
throw new SyntaxError("There is a syntax error!");
}
}
感谢您的帮助。
答案 0 :(得分:1)
您在代码var 1ele = 1;
中引入了语法错误,并打算捕获错误以显示自定义错误消息。但是,由于语法错误将导致JavaScript解析器在遇到语法错误后很快停止,因此这不会以您现在编写的方式工作。
但是,您可以使用catch
语句实现相同的功能。请尝试下面的代码。
eval

在这里,我在try {
eval("var 1ele = 1");
} catch (error) {
if (error instanceof SyntaxError) {
throw new SyntaxError("There is a syntax error!");
}
}
函数中包含了导致变量声明的语法错误。这将仅在执行eval
语句的环境中导致语法错误,而不是主代码。您将能够捕获错误并显示您的自定义消息。
注1:您收到eval
错误消息,因为您的变量名称以"SyntaxError: missing exponent"
开头,这使得JavaScript解析器认为它是指数格式的数字。
注意2:您在代码中使用了1e
。它实际上是instanceOf
(小写instanceof
)。 Ref