1.try...catch 语句
用来测试代码中的错误,try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
2.怎么用
try{
//再此执行代码,如果发生异常直接跳入catch,下面代码不在执行
}
catch(error){
//error自定义错误输出信息 需要与thow配合使用
}
finally {
//finally 可用可不用但是只要用了, try语句块中的代码全部正常执行,finally会执行;
//如果因为出错 而执行了catch语句块finally照样还会执行,代码中包含finally,
//那么无论try还是catch语句块中的return语句将被忽略。
}
/*
执行顺序为:首先执行try语句块中的代码,如果抛出异常,接着执行catch语句块中代码,如果
没有异常,catch语句块中代码将会被忽略,但不管是否有异常,最后最会执行finally子句。
try后面必须接着一个catch或者finally,也就是可以有3中组合形式。即try-catch、
try-finally、try-catch-finally三种形式。 */
3,错误类型
1, Error
基类型,主要目的供开发人员抛出自定义错误。
2, EvalError
使用eval()函数而发生异常时抛出,eval() 函数可计算某个字符串,并执行其中的的代码。
3, RangeError
会在数值超出相应范围时触发。
4, ReferenceError
在找不到对象的情况下会发生ReferenceError,通常在访问不存在的变量时,就会发生这种错误
5, SyntaxError
把语法错误的字符串传入eval()函数时,就会导致此类错误
6, TypeError
执行特定于类型的操作时,变量的类型并不符合要求所致。
7, URIError
使用encodeURI()或decodeURI(),而URI格式不正确时,就会导致此错误
4.抛出错误
与try-catch语句相配的还有一个throw操作符,用于随时抛出自定义错误。抛出错误时,
必须要给throw操作符指定一个值。这个值是什么类型,没有要求。
在遇到throw操作符时,代码会立即停止执行。仅当有try-catch语句捕获到被抛出的值时
,代码才会继续执行。
创建自定义错误消息时,最常用的错误类型是Error、RangeError、ReferenceError和TypeError。
另外,利用原型链还可以通过继承Error来创建自定义错误类型。此时,需要为新创建的错误类型指
定name和message属性。
5.try-catch使用考量
使用try-catch最适合处理那些我们无法控制的错误,假设你在使用一个大型库中的函数,
该函数可能会有意无意地抛出一些错误。由于不能修改这个库的源代码,所以大可将对该
函数的调用放在try-catch语句当中。万一有什么错误发生,也好恰当地处理它们。
明明白白地知道自己的代码会发生错误时,再使用try-catch语句就不太合适了。例如,如果
传递给函数的参数是字符串而非数值,就会造成函数出错,那么就应该先检查函数的类型,然
后再决定如果去做。在这种情况下,不应该使用try-catch语句。
借鉴学习路径
https://www.cnblogs.com/iceflorence/p/6593139.html