js中Error对象

js中错误对象包括Error、EvalError、InternalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError。

通过Error的构造器可以创建一个错误对象。当运行时错误产生时,Error的实例对象会被抛出。Error对象也可用于用户自定义的异常的基础对象。下面列出了各种内建的标准错误类型。

语法

new Error([message[, fileName[,lineNumber]]])

参数

message

可选。人类可阅读的错误描述信息。

fileName 

可选。被创建的Error对象的fileName属性值。默认是调用Error构造器代码所在的文件 的名字。

lineNumber 

可选。被创建的Error对象的lineNumber属性值。默认是调用Error构造器代码所在的文件的行号。

当像函数一样使用 Error 时 -- 如果没有 new,它将返回一个 Error 对象。所以, 仅仅调用 Error 产生的结果与通过new 关键字构造 Error 对象生成的结果相同。 

// this:
const x = Error('I was created using a function call!');
​​​​// has the same functionality as this:
const y = new Error('I was constructed via the "new" keyword!');

除了通用的Error构造函数外,JavaScript还有6个其他类型的错误构造函数,这6种都是继承了Error

 EvalError
      创建一个error实例,表示错误的原因:与 eval() 有关。
InternalError 
      创建一个代表Javascript引擎内部错误的异常抛出的实例。 如: "递归太多".
RangeError
      创建一个error实例,表示错误的原因:数值变量或参数超出其有效范围。
ReferenceError
      创建一个error实例,表示错误的原因:无效引用。
SyntaxError
      创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。
TypeError
      创建一个error实例,表示错误的原因:变量或参数不属于有效类型。
URIError
      创建一个error实例,表示错误的原因:给 encodeURI()或  decodeURl()传递的参数无效。

共同点是都可以在对象原型下添加自定义属性

可以取出来的参数有 message 和 stack 堆栈和name属性

try{
 bucunzaihanshu()  // 不存在函数必会报错
}catch(e){
 //TODO handle the exception
 console.log(e.message);
 console.log(e.stack);
}

try {
  throw new EvalError('Hello');
} catch (e) {
  console.log(e instanceof EvalError); // true
  console.log(e.message);              // "Hello"
  console.log(e.name);                 // "EvalError"
  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
}

其他就不举例了。

猜你喜欢

转载自blog.csdn.net/weixin_41229588/article/details/106856158