老师,能给我解释一下try...catch和try..catch...finally吗

来源:2-13 [拓展]处理报错的语句

廖可爱bongbong

2021-05-20 15:59:00


相关代码:

  try {
console.log(num)
}catch (err) {
console.log(err)
}
console.log("我还会执行")

相关代码:

​try {
var num = 10;
console.log(num)
} catch (err) {
console.log(err)
}
console.log("我还会执行")


写回答

1回答

好帮手慕久久

2021-05-20

同学你好,解答如下:

1、try catch 可以用来处理代码的异常。比如下面的代码,正常情况下,不会打印111,因此变量num没有定义直接使用了,代码会报错:

http://img.mukewang.com/climg/60a61c8d09b75ae603820098.jpg

http://img.mukewang.com/climg/60a61cbf09e3833e07440288.jpg

此时我们可以使用try catch处理一下,让代码即使有错误,也能正常往下执行不会中断

http://img.mukewang.com/climg/60a61d05095b398e04510205.jpg

上图代码的执行过程如下:

先尝试执行try中的代码(console.log(num)),如果代码没错误,则正常执行try中代码,否则会执行catch中代码;最后代码会继续往下执行console.log("我还会执行"):

http://img.mukewang.com/climg/60a61dd309cde8fd05730365.jpg

http://img.mukewang.com/climg/60a61e010922da2706710380.jpg

http://img.mukewang.com/climg/60a61e2509b19f2307560347.jpg

即console.log("我还会执行")这句代码,不会受上面代码影响,即使上面代码有问题,代码也能正常往下执行它(图A),而不会因为错误而中断:

http://img.mukewang.com/climg/60a61eda09041cd006460377.jpg

2、try catch finally和try catch 一样,只是多了一个finally。不管代码是否有错,finally中的代码都会执行,所以图A中的代码可以改写成如下:

http://img.mukewang.com/climg/60a61f810943d34306090523.jpg

try catch finally并不常用,重点学会try catch 即可。

建议同学将例子敲一下,重点观察代码是怎么执行的,再多看几遍如下拓展中的解释:

https://class.imooc.com/lesson/1620#mid=45543

祝学习愉快!

0

0 学习 · 15276 问题

查看课程