场景
正常情况下,如果程序出现了错误或者异常,那么改行代码后面的所有代码都无法得到执行
但是,有些时候我们需要保证即使程序出了问题,后面的代码也能够正常执行,这种情况下就可以使用异常捕获结构。
使用
-
抛出异常:人为抛出异常
throw:字符串或对象<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> function devide(a,b){ if (b===0){ throw'分子不能为零' } return a/b; } try{ console.log(devide(10,0)); }catch (e) { console.log(e); }finally { console.log('不管有无错误,都会进来,一般在这里释放资源'); } </script> </body> </html>
运行结果:
-
捕获异常
try{ // 可能出错的代码 }catch(e){ // 出错了就执行这个代码块 } finally { // 不管是否出错,都会执行这里的代码块 // 一般在前端开发中不会使用,多用于后端开发node.js,主要用于最后释放资源 }
举例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> try{ console.log(num) }catch (e) { console.log(e); } console.log(10); </script> </body> </html>
运行结果: