InternalError
非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!
InternalError
对象表示出现在 JavaScript 引擎内部的错误。通常描述某种数量过多的情况,例如:
- "too many switch cases"(过多
case
子句); - "too many parentheses in regular expression"(正则表达式中括号过多);
- "array initializer too large"(数组初始化器过大);
- "too much recursion"(递归过深)。
构造函数
InternalError()
非标准创建一个新的
InternalError
对象。
实例属性
Error.prototype.message
错误消息。继承自
Error
。Error.prototype.name
错误名称。继承自
Error
。Error.prototype.cause
表示导致当前错误被抛出的原因。继承自
Error
。Error.prototype.fileName
非标准引发此错误的文件的路径。继承自
Error
。Error.prototype.lineNumber
非标准引发此错误的代码所在的文件的行号。继承自
Error
。Error.prototype.columnNumber
非标准引发此错误的代码在文件中所在行的列号。继承自
Error
。Error.prototype.stack
非标准堆栈跟踪。继承自
Error
。
示例
递归过深
根据退出条件所述,以下递归函数运行 10 次。
js
function loop(x) { // "x >= 10" 是退出条件 if (x >= 10) return; // 做一些事情 loop(x + 1); // 递归调用 } loop(0);
如果这个条件值太高,可能不会奏效:
js
function loop(x) { if (x >= 1000000000000) return; // 做一些事情 loop(x + 1); } loop(0); // InternalError: too much recursion
要获取更多信息,请参阅 InternalError: too much recursion。
规范
尚未成为任何规范的一部分。