Node.js异常处理

来源:互联网 发布:电脑桌面 知乎 编辑:程序博客网 时间:2024/05/14 07:33

异常处理

  • 什么是异常?
    计算机不能处理的状况称之为异常.

  • 异步异常对象和被try catch捕获的对象是一样的。

    • 不会影响下面代码的执行。
    • 错误里面的信息是堆栈信息。
      这里写图片描述
    • 可以给error对象设置一个code属性,便于我们自己对错误的管理。
    var err = new Error('错误对象信息');    err.code = 100;    err.namename = '链接超市';    console.log(err);    console.log(err.code);    console.log(err.namename);

这里写图片描述

  • throw抛出异常,导致后面代码无法执行

  • try catch 只能捕获同步异常

try {  fs.accessSync('./02sfdasdfio.js');} catch (err) {  console.log("1"+err); }

access(异步)与accessSync(同步)测试try…catch

    fs.access('hhaa.js',(err,data)=>{        if(err) {            //throw err;            console.log("access"+ err);        }        console.log(data);    })    try{        fs.accessSync('hhaa.js');    }catch(err){        console.log("accessSync:"+ err);    }//执行结果:accessSync:ENOENT:no such file or directory,access 'G:\hhaa.js'accessENOENT:no such file or directory,access 'G:\hhaa.js'

注意:try…catch只能捕获同步代码的异常:

    //示例1    try{        fs.access('hhaa.js',(err,data)=>{            if(err) {                throw err;            }            console.log(data);        })    }catch(err){        console.log(111); //捕获不到异常    }    //示例2    fs.access('hhaa.js',(err,data)=>{        try{            if(err){                throw err;            }        }catch(error){            console.log(111);//可以捕获到异常        }    })    //示例3    try{        fs.accessSync('hhaa.js');    }catch(err){        console.log("accessSync:"+ err); //可以捕获到异常    }