摘要:是捕捉异常的神器,不管是调试还是防止软件崩溃,都离不开它。今天笔者介绍一下加上后的执行顺序嗯按顺序执行了。现在笔者在语句块中故意报错看来,和的都需要先经过。
try-catch是捕捉异常的神器,不管是调试还是防止软件崩溃,都离不开它。今天笔者介绍一下加上finally后的执行顺序
function test() { try { console.log(1); } finally { console.log(2); } } console.log(test()); // 1 2
嗯!按顺序执行了。
我们在try中加入return语句
function test() { try { console.log(1); return "from_try"; } catch (e) { // TODO } finally { console.log(2); } } console.log(test()); // 1 2 from_try
等等,难道不应该是 1 > from_try > 2的顺序吗?
抱歉啊,是这样的,在try和catch的代码块中,如果碰到return语句,那么在return之前,会先执行finally中的内容,所以2会比from_try优先输出。
我们在finally中也加入return语句
function test() { try { console.log(1); return "from_try"; } catch (e) { // TODO } finally { console.log(2); return "from_finally"; } } console.log(test()); // 1 2 from_finally
买噶的,我的from_try怎么不见了?
抱歉,按照上一条的规则,finally是会优先执行的,所以如果finally里有return语句,那么就真的return了。
现在笔者在try语句块中故意报错
function test() { try { console.log(1); throw new Error("throw"); } catch (e) { console.log(e.message); return "from_catch"; } finally { console.log(2); } } console.log(test()); // 1 throw 2 from_catch
看来,try和catch的return都需要先经过finally。
结语只是一个很小的细节。但也希望各位看官好好利用这种特性。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107985.html
摘要:是捕捉异常的神器,不管是调试还是防止软件崩溃,都离不开它。今天笔者介绍一下加上后的执行顺序嗯按顺序执行了。现在笔者在语句块中故意报错看来,和的都需要先经过。 try-catch是捕捉异常的神器,不管是调试还是防止软件崩溃,都离不开它。今天笔者介绍一下加上finally后的执行顺序 function test() { try { console.log(1); } fin...
摘要:基础系列的与方法类初始化顺序线程池如何弹性伸缩的几个要点的缓存什么场景下使用阻塞队列的使用及模式中的序本文主要简述中有的情况。参考关于中的执行顺序 Java基础系列 Java的hashcode与equals方法 Java类初始化顺序 ThreadPoolExecutor线程池如何弹性伸缩 HashMap的几个要点 Integer的缓存 什么场景下使用阻塞队列 volatile的使用及...
摘要:被你忽略的尾调用尾调用是什么在有一个新特性尾调用用最简单的一句话描述就是某个函数的最后一步再调用另一个函数,听起来挺简单的,但是它的功能特别强大,直接给你撸个例子吧。如果函数内部还调用函数,那就还有一个的调用记录栈,以此类推。 title: 被你忽略的‘尾调用’date: 2017-05-02 16:52:22 tags: [ES6,javascript] 尾调用是什么? 在ES6有...
摘要:关于异常处理的文章已有相当的篇幅,本文简单总结了的异常处理机制,并结合代码分析了一些异常处理的最佳实践,对异常的性能开销进行了简单分析。是程序正常运行中,可以预料的意外情况,应该被捕获并进行相应处理。 关于异常处理的文章已有相当的篇幅,本文简单总结了Java的异常处理机制,并结合代码分析了一些异常处理的最佳实践,对异常的性能开销进行了简单分析。博客另一篇文章《[译]Java异常处理的最...
阅读 1838·2021-09-23 11:21
阅读 700·2019-08-30 15:55
阅读 834·2019-08-29 15:40
阅读 531·2019-08-29 12:56
阅读 3160·2019-08-26 12:00
阅读 3554·2019-08-23 18:24
阅读 2248·2019-08-23 17:08
阅读 1639·2019-08-23 17:03