try、catch、finally

先说明一下try、catch、finally。 简单说一下try,catch。就是在浏览器执行JS脚本过程中,当出现脚本错误,并且你没有手动进行异常捕捉时,他会在浏览器下面出现黄色的叹号,这是正常的,这也不是最重要的,最重要的是,出错行以下的所有JS代码将停止执行,这是我们不希望看到的,所以说,对于自己写的,拿不准的脚本还是加上异常捕捉比较好。 try: 语句测试代码块的错误,一般把可能会出错的代码放到这里。 catch: 只有try里面的代码块发生错误时,才会执行这里的代码,参数err记录着try里面代码的错误信息。 finally: 无论有无异常里面代码都会执行。 使用场景:为容易出错的,容易产生兼容问题的代码段加上try..catch。合处理那些我们无法控制的错误,如I/O操作,后端java读取I/O操作比较多比如读数据库,所以用try catch比较多。前端可以用在上传图片或async await同步调接口。 try catch缺点:   1.try catch耗性能。   2.try catch捕获不到异步错误。   3.try catch可能会导致报错点更模糊。 顺序: try里面的代码报错的时候,catch里面的代码才会执行,finally里面的代码永远会执行。 catch和finally里面,正常的代码会从上到下顺序执行。 如果只是catch里面代码出错,则报catch里面的错误。 如果catch和finally都出错则会报finally里面的错误。 例: ``` try{ console.log(a);        //如果是不存在的变量,则抛出异常,将直接跳到catch里面执行(throw 定义异常也不会被抛出)        throw "不存在";    //定义抛出异常 console.log("I am try"); //只要上面的语句出现错误或者throw语句这句将不会被执行 }catch(err){ //如果try中发现错误,则执行catch中的语句,如果没有错误,则跳过catch console.log(err) //接收设置的throw错误异常,如果没有则抛出根据情况默认错误 console.log("错误"); //被执行 }finally{ console.log("无论如何都会执行"); } ```