使用SyntaxError捕获无效的变量名称

时间:2018-01-03 03:25:27

标签: javascript error-handling try-catch

首先不执行catch子句。但是我在浏览器中收到“SyntaxError:missing exponent”错误。我想知道是不是因为加载时间?或者我的设置不对。

我想为不正确的变量名称设置自定义错误。

try {
  var 1ele = 1;
} catch (error) {
  if (error instanceOf SyntaxError) {
    throw new SyntaxError("There is a syntax error!");
  }
}

感谢您的帮助。

1 个答案:

答案 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