继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

球状闪电2012
关注TA
已关注
手记 25
粉丝 4
获赞 1

课程名称: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语言搞笑图。确实很搞笑。

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



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


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


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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP