首先,catch子句没有被执行。但是我在浏览器中收到“SyntaxError:missing exponent”错误。我想知道是不是因为加载时间?或者我的设置不对。
我想为不正确的变量名称制作自定义错误。
try {
var 1ele = 1;
} catch (error) {
if (error instanceOf SyntaxError) {
throw new SyntaxError("There is a syntax error!");
}
}
谢谢您的帮助。
您在代码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
函数中包含了引发变量声明的语法错误。这将仅在执行eval
语句的环境中导致语法错误,而不是主代码。您将能够捕获错误并显示您的自定义消息。
注意1:您收到"SyntaxError: missing exponent"
错误消息,因为您的变量名称以1e
开头,这使得JavaScript解析器认为它是指数格式的数字。
注意2:您在代码中使用了instanceOf
。它实际上是instanceof
(小写o
)。 Ref