Error 对象属性与方法
Error对象
在 JavaScript 中, Error 对象用于表示程序非正常运行状态。除了继承自 Object 的一些属性和方法外,Error 对象本身没有任何自定义属性和方法。Error对象只做一件事,就是在程序非正常运行状态时抛出一个信息,用以提醒开发者或使用者程序出错或异常。
创建一个 Error 对象的方法:
- throw new Error(msg)
- var err = Error(msg)
- var err = new Error(msg)
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 信息" }
JavaScript 中的三大对象 (本地对象、内置对象、 宿主对象)
本地对象
- Object 对象属性和方法
- String 对象属性和方法
- Array 对象属性和方法
- Date 对象属性和方法
- Number 对象属性和方法
- RegExp 对象属性和方法
- Function 对象属性和方法
- Boolean 对象属性和方法
- Error 对象属性和方法
内置对象
宿主对象