素材巴巴 > 程序开发 >

JS——try...catch

程序开发 2023-09-22 13:40:08

视频:https://ke.qq.com/course/231577?taid=3983676656552089

try{}catch(e){}finally{}         //e可以随写

 

Error.name的六种值得对应的信息:

  1. EvalError:eval()的使用与定义不一致
  2. RangeError:数值越界
  3. ReferenceError:非法或不能识别的引用值
  4. SyntaxError:发生语法解析错误
  5. TypeError:操作数类型错误
  6. URIError:URI处理函数使用不当
try{console.log("a");console.log(b);console.log("c");}catch(e){}console.log("d");
 

try里面的代码错误的时候,他会报错,但是不会抛出错误,他不会执行错误的console.log(b);而是跳过,而且这个console.log(“c”);依然执行不出来,但是,后续的代码还是会执行。

在try里面发生错误,不会执行错误后的try里面的代码。

那catch什么意思呢?

try{console.log("a");console.log("b");console.log("c");}catch(e){console.log("22");}console.log("d");
 

 

try{console.log("a");console.log(b);console.log("c");}catch(e){console.log("22");}console.log("d");
 

当try里面的代码没有错误的时候,catch里面的代码是不会被执行的;

当try里面的代码没有错误的时候,catch就负责把错的给捕捉到,有一堆错误信息error(error是对象),系统会把错误信息(error.message error.name)封装到一个error对象里面,然后把error对象传到e里面,供咱们使用。

咱们看一下,

try{console.log("a");console.log(b);console.log("c");}catch(e){console.log(e.message + " " + e.name);}console.log("d");
 

咱现在不e.name和e,message调换一下顺序,再在catch外面加上一条错误的代码,你在看。

try{console.log("a");console.log(b);console.log("c");}catch(e){console.log(e.name + ":" + e.message);}console.log(f);console.log("d");
 

如果说你要把这个东西try,catch起来,catch就是负责捕捉错误的,捕捉错误到程序里面,他就不会抛出到控制台里面,他就不会让程序去终止。

那,如果try里面有两个错误呢?

try{console.log("a");console.log(b);console.log(c);}catch(e){console.log(e.name + ":" + e.message);}console.log("d");
 

这是因为到错误b他就停了,也就会看c了。

 

 

Error.name的六种值得对应的信息:

这个EeferenceError就是错误的名称,d is not defined就是错误信息。

错误的名称一共就六种,其中1,2,4,5是最不常用的。

  1. RefereError,如果一个变量未经声明就使用的话,就会RefereError;

当一个函数未经声明就调用,也会RefereError,

4.SyntaxError,当我写程序的时候写了一个中文的冒号,这种低级错误就会解析成SyntaxError。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。