场景

正常情况下,如果程序出现了错误或者异常,那么改行代码后面的所有代码都无法得到执行

但是,有些时候我们需要保证即使程序出了问题,后面的代码也能够正常执行,这种情况下就可以使用异常捕获结构

使用

  1. 抛出异常:人为抛出异常
    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>
    

    运行结果:
    JavaScript:异常处理_html

  2. 捕获异常

    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>
    

    运行结果:
    JavaScript:异常处理_ide_02