Node.js异常处理

异常处理

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

  • 异步异常对象和被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); //可以捕获到异常
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值