引发EvalError和InternalError

时间:2014-10-08 13:49:16

标签: javascript exception

当我查找javascript错误类型时,我发现根据MDN有7种错误类型。 我可以生成所有核心五个错误,例如SyntaxErrorReferenceErrorRangeErrorURIErrorTypeError

但是,我找不到生成其他2种错误类型EvalErrorInternalError的方法。我该如何生成这个? (或者)是否有任何示例javascript代码引发此错误?

2 个答案:

答案 0 :(得分:3)

来自ES5 specification

  

15.11.6.1 EvalError
  此规范当前未使用此异常。此对象仍与本规范的先前版本兼容。

所以我猜这个错误不能在现代浏览器中产生。

关于InternalError,您链接的页面显示为:

  

InternalError该
  创建一个实例,表示在引发JavaScript引擎中的内部错误时发生的错误。的 E.g。 “太多的递归”

确实如此,正在运行

function foo() {
  foo();
}
foo();

引发

InternalError: too much recursion

答案 1 :(得分:1)

你可以像这样抛出EvalError

throw new EvalError("message");

但是,InternalError尚未标准化,但在某些浏览器中,您可以通过执行过多的递归来制作该错误,并且EvalError位于@FelixKling指出濒临灭绝的边缘