js异常错误处理
记一次最近工作中遇到问题的处理方法。整理自https://www.cnblogs.com/luluping/archive/2011/02/14/1954092.html
当 JavaScript 引擎执行 JavaScript 代码时,可能会发生各种错误:比如数组索引越界、类型不匹配或者语法错误等。
当javascript抛出错误的时候,JavaScript 引擎通常会停止,并生成一个错误消息,往往会导致整个页面的假死。
try 语句测试代码块的错误。
catch 语句处理错误。
throw 语句创建自定义错误。
JavaScript 测试和捕捉
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。
Throw 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
常用方法:
try {
// 此处是可能产生例外的语句
} catch(error) {
// 此处是负责例外处理的语句
} finally {
// 此处是出口语句
}
其中Error对象有两个属性:name属性表示例外的类型,message属性表示例外的含义。
Error.name的取值一共有六种,如下:
Error:()的使用与定义不一致
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当
自定义错误信息:
上述的六种Error类型基本上覆盖了脚本程序运行时所可能发生的错误。除了这些类型以外,我们还可以使用Error构造器来自定义例外类型,其语法如下:
myError = new Error(msg)
其中msg参数表示所定义的新例外的message属性值。同时,我们还可以创建新的对象类型以作为Error的子类型:
function MyError(msg) {
this.name = "MyError"
this.message = msg
}
MyError.prototype = new Error;
然后,我们就可以创建自定义错误子类的实例:
myError = new MyError("My error message")
try…catch…finally语句的变形使用,即try…catch或者try…finally。