为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第12天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》

课程名称:Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

课程章节:第4章【深入浅出讲异常】异步异常与全局异常处理

视频:4-2 异常理论与异常链

课程讲师: 七月


课程内容:

这节课是异常处理的基础理论课

语法上的异常处理并不等同于异常处理的应用。


调用函数后,可能的两种结果:

  1. 没有发生异常 正确返回结果(包括返回undefind)

  2. 发生了异常,


函数设计

判断出现异常,return false 或者return null

或者throw new Error 

编程规范中,如果出现异常,应该throw 抛出异常

javascript搞笑图,在公司面试时可能会问到。


//版本1
function func1() {
    func2()
}
function func2() {
    const r = func3()
    if (!r) {
       
    }
}
function func3() {
    return false    
}
//func3返回false即为异常, func2用if进行判断
//版本2
function func1() {
    func2()
}
function func2() {
    try {
        func3()
    } catch (error) {
       
    }
}
function func3() {
       try {
        1/0
    } catch (error) {
        throw error
    }
}
console.log(func3())
function func3(){
    try{
        1/0
    } catch (error) {
        throw error
    }
    return 'success'
}
执行后,返回success

try中的代码没有引发异常,是javascript语言设计时的问题。
javascript中 1/0不是非法的。不会报错, 会得到 Infinity

0/a  当a未定义的时候,会出现异常
//改造之后的
function func1() {
    try {
        func2()
    } catch (error) {
        throw error
    }
}
function func2() {
    try {
        func3()
    } catch (error) {
        throw error
    }
}
function func3() {
     try{
        0/a
    } catch (error) {
        throw error
    }
    return 'success'
}

需要设计一个机制,监听到任何异常。



课程收获:

七月老师把这节课当做异常处理的基础理论课来讲。七月老师还介绍了一张javascript语言搞笑图。确实很搞笑。

这节课是基础,为后面更复杂的逻辑做一个铺垫。



七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。


https://img3.sycdn.imooc.com/6365237a00011d8411350637.jpg


https://img4.sycdn.imooc.com/636525270001a02509861108.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消