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”问题处理(代码片段
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段