Error 对象属性与方法

Posted elfpower

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Error 对象属性与方法相关的知识,希望对你有一定的参考价值。

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 对象属性与方法的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

Android - 保留片段?

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

python之路之前没搞明白4面向对象(封装)

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

AS3:TypeError:错误 #1009:无法访问空对象引用的属性或方法。需要帮助