Raise EvalError and InternalError

Raise EvalError and InternalError

本文关键字:InternalError and EvalError Raise      更新时间:2023-09-26

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

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

来自ES5规范:

15.11.6.1评估错误
此规范中当前未使用此异常。此对象保留为与本规范的早期版本兼容。

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

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

内部错误
创建一个实例,表示在JavaScript引擎中引发内部错误时发生的错误例如"递归过多"

没错,运行

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

投掷

InternalError: too much recursion

你可以像这个一样抛出EvalError

throw new EvalError("message");

然而,InternalError不是标准化的,但在某些浏览器中,您可以通过进行过多的递归来犯错误,并且EvalError正处于灭绝的边缘,正如@FelixKling

所指出的那样