码迷,mamicode.com
首页 > 其他好文 > 详细

Error 对象属性与方法

时间:2020-06-08 12:18:03      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:invalid   com   ons   继承   catch   除了   precision   typeerror   类型   

Error对象

除了继承自Object的一些属性和方法外,Error对象本身没有任何自定义属性和方法。Error对象只做一件事,就是在程序非正常运行状态时抛出一个信息,用以提醒开发者或使用者程序出错或异常。

 

Error.prototype 对象属性

Error 实例属性:

1.Error.prototype.name:设置或返回一个错误名。

2.Error.prototype.message:设置或返回一个错误信息。

try{
    throw new Error(‘发生了一个异常‘)
}catch(err){
    console.log(‘err:‘,err)// err: Error: 发生了一个异常
    console.log(‘err name:‘, err.name)// "err name: Error"
    console.log(‘err message:‘, err.message)// "err message: 发生了一个异常"
}

 

JS 中其他错误对象

除了Error对象外,JS 的本地对象中还有其他类型的错误对象,并且这些错误对象都可以通过构造函数创建其实例。这些错误对象会在特定情况下抛出对应的错误信息,除Error外的6种错误对象:

1.EvalError :Eval错误,全局函数eval()函数错误时触发(现在Eval 错误都会抛出 SyntaxError )。

创建:new EvalError(msg)
示例:

try{
    throw new EvalError(‘一个EvalError信息‘)
}catch(err){
    console.log(‘err:‘,err)// err: EvalError: 一个EvalError信息
    console.log(‘err name:‘, err.name)// "err name: EvalError"
    console.log(‘err message:‘, err.message)// "err message: 一个EvalError信息"
}

 

2.URIError : URI错误,全局URI函数错误时触发。

参建:new URIError(msg)

// 系统抛出 URIError
try{
    decodeURIComponent("%")
}catch(err){
    console.log(‘err:‘,err)// "err: URIError: URI malformed"
    console.log(‘err name:‘, err.name)// "err name: URIError"
    console.log(‘err message:‘, err.message)// "err message: URI malformed"
}

// 自行创建
try{
    throw new URIError(‘一个 URIError 信息‘)
}catch(err){
    console.log(‘err:‘,err)// "err: URIError: 一个 URIError 信息"
    console.log(‘err name:‘, err.name)// "err name: URIError"
    console.log(‘err message:‘, err.message)// "err message: 一个 URIError 信息"
}

 

3.ReferenceError : 引用错误,引用未定义变量时触发。

// 系统抛出 ReferenceError
try {
  und.er()
} catch (err) {
  console.log(‘err:‘,err)// "err: ReferenceError: und is not defined"
  console.log(‘err name:‘, err.name)// "err name: ReferenceError"
  console.log(‘err message:‘, err.message)// "err message: und is not defined"
}

// 自行创建
try{
    throw new ReferenceError(‘一个 ReferenceError 信息‘)
}catch(err){
    console.log(‘err:‘,err)// "err: ReferenceError: 一个 ReferenceError 信息"
    console.log(‘err name:‘, err.name)// "err name: ReferenceError"
    console.log(‘err message:‘, err.message)// "err message: 一个 ReferenceError 信息"
}

 

4.RangeError : 范围错误,值超出有效范围时触发。

// 系统抛出 RangeError
try{
     num.toPrecision(101);
}catch(err){
    console.log(‘err:‘,err)// "err: RangeError: toPrecision() argument must be between 1 and 100"
    console.log(‘err name:‘, err.name)// "err name: RangeError"
    console.log(‘err message:‘, err.message)// "err message: toPrecision() argument must be between 1 and 100"
}

// 自行创建
try{
    throw new RangeError(‘一个 RangeError 信息‘)
}catch(err){
    console.log(‘err:‘,err)// "err: RangeError: 一个 RangeError 信息"
    console.log(‘err name:‘, err.name)// "err name: RangeError"
    console.log(‘err message:‘, err.message)// "err message: 一个 RangeError 信息"
}

 

5.SyntaxError : 语法错误,语法错误时触发。

// 系统抛出 SyntaxError
try{
    eval("console.log(‘Hello)");
}catch(err){
    console.log(‘err:‘,err)// "err: SyntaxError: Invalid or unexpected token"
    console.log(‘err name:‘, err.name)// "err name: SyntaxError"
    console.log(‘err message:‘, err.message)// "err message: Invalid or unexpected token"
}

// 自行创建
try{
    throw new SyntaxError(‘一个 SyntaxError 信息‘)
}catch(err){
    console.log(‘err:‘,err)// "err: SyntaxError: 一个 SyntaxError 信息"
    console.log(‘err name:‘, err.name)// "err name: SyntaxError"
    console.log(‘err message:‘, err.message)// "err message: 一个 SyntaxError 信息"
}

 

6.TypeError : 类型错误,值的数据类型错误时触发。

// 系统抛出 TypeError
try {
  var str = "er"
  str.er();
} catch (err) {
  console.log(‘err:‘,err)// "err: TypeError: str.er is not a function"
  console.log(‘err name:‘, err.name)// "err name: TypeError"
  console.log(‘err message:‘, err.message)// "err message: str.er is not a function"
}

// 自行创建
try{
    throw new TypeError(‘一个 TypeError 信息‘)
}catch(err){
    console.log(‘err:‘,err)// "err: TypeError: 一个 TypeError 信息"
    console.log(‘err name:‘, err.name)// "err name: TypeError"
    console.log(‘err message:‘, err.message)// "err message: 一个 TypeError 信息"
}

 

 

RangeError

Error 对象属性与方法

标签:invalid   com   ons   继承   catch   除了   precision   typeerror   类型   

原文地址:https://www.cnblogs.com/elfpower/p/12717831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!