错误
所有错误对象都是Error对象的子对象,可以使用这些构造函数创建一个错误对象,构造函数接收一个字符串参数,表示出错信息
Error. Prototype. Message:出错信息Error. Prototype. Name:错误名称,也就是构造函数名Error. Prototype. Stack:错误堆栈信息
原生错误类型
| 对象名 | 中文名 | 描述 |
|---|---|---|
SyntaxError |
语法错误 | 变量名不合法、关键字使用位置不合法等 |
ReferenceError |
引用错误 | 使用不存在的变量、赋值语句左部不是变量 |
RangeError |
范围错误 | 定义数组长度为负数或超过数组最大的容纳范围 |
TypeError |
类型错误 | new一个非构造函数、使用未定义的函数 |
URLError |
URL 错误 | 对URL函数传递的参数是非URL地址时 |
Throw 抛出错误
若为捕获的情况下,程序遇到该语句就会停止运行将该关键字后的错误抛出,该关键字不仅仅可以抛出错误对象,还可以抛出任意数据类型
Throw new Error ("err");
//Error: err
Throw 1; //其他不列举了
//1
捕获错误
try... Catch结构:若 try 中发生错误,生成的错误对象会被 catch 语句捕获,后面的代码还会执行,要注意的是每个try只能有一个catch语句块
Try {
Throw new Error ("err");
} catch (e) {
Console.Error (e);
}
Console.Log ("后面的代码");
//Error: err
//后面的代码
try... Catch... Finally结构:不管有没有发生错误,finally 语句块中的代码总会执行,要注意的是finally不能单独使用,必须配合try可以没有catch,每个try只能有一个finally语句块
Try {
Throw new Error ("err");
} catch (e) {
Console.Error (e);
} finally{
Console.Log ("filally 中的代码");
}
Console.Log ("后面的代码");
//Error: err
//filally 中的代码
//后面的代码
Try {
} catch (e) {
Console.Error (e);
} finally{
Console.Log ("filally 中的代码");
}
Console.Log ("后面的代码");
//filally 中的代码
//后面的代码
Try {
} finally{
Console.Log ("filally 中的代码");
}
Console.Log ("后面的代码");
//filally 中的代码
//后面的代码
自定义错误
继承 Error 对象即可
Function UserError (message) {
This. Message = message;
This. Name = UserError. Name;
}
UserError. Prototype = new Error ();
UserError. Prototype. Constructor = UserError;
Console.Log (new UserError ("自定义的错误"));
Console.Log (new Error ("原生错误"));
Console.Log (new UserError () instanceof Error ); //true

Comments NOTHING