Error
也就是程序中抛出的错误
创建Error
new Error(message)
- 创建一个Error对象,运行时抛出
- 参数:message代表错误信息
- 返回值是Error实例
抛出/捕获Error
try{ a } catch (e){ console.log("a未定义") }
Error属性
Error.prototype.name
指的的是Error的名称,默认值就是Error
Error.prototype.message
指的是错误信息,默认值是empty(空字符串)
try { throw new Error("undefined123") } catch(e) { console.log(e.name); //Error console.log(e.message) //undefined123 }
内建Error类型(我的理解是就是系统自带的)
EvalEror:错误原因跟eval函数使用有关,老版本使用
RangeError:值超出了有效范围,例如,数组的长度超出了范围
ReferenceError:无效引用,例如,引用了一个没有定义的变量
SyntaxError:语法解析错误,例如,语法不符合规则
TypeError:值或参数的类型与预期不符,例如,字符串.一个test()方法,实际上字符串是没有test方法的,所以报错
URIError:未按定义的方法去使用操作URI的方法,包括编码和解码
自定义Error
function CustomError(message) { this.name="CustomError"; this.message=message||"Unexpected error" this.stack=(new Error()).stack; } CustomError.prototype=Object.create(Error.prototype); CustomError.prototype.constructor=CustomError; try { throw new CustomError("自定义错误") } catch (e){ console.log(e.name); console.log(e.message) }