资讯专栏INFORMATION COLUMN

php和nodeJs捕获异常在回掉函数中的差异

terasum / 3190人阅读

摘要:代码运行结果代码这里不会截获回调函数中的运行结果如下图结论在函数中可以捕获到异常,不行。可以用以下方式捕获,也就是错误信息优先的回调模式惯例。

php代码:

try{
    foo(2,function($param){
        if($param==1){
            throw new Exception("cathing");
        }
    });
}catch(Exception $e){
    echo $e->getMessage();
}
function f1($v) {
  return $v + $v;
}
function foo($n, $f="") {
  if($n < 1) return;
  for($i=0; $i<$n; $i++) {
    echo $f ? $f($i) : $i;
  }
}
//运行结果cathing

nodeJs代码:

const fs = require("fs");

try {
    fs.readFile("/some/file/that/does-not-exist", (err, data) => {
        // mistaken assumption: throwing here...
        if (err) {
            throw err;
        }
    });
} catch (err) {
    // 这里不会截获回调函数中的throw
    console.error(err);
}
//运行结果如下图

结论:php在函数中可以捕获到异常,node不行。node可以用以下方式捕获,也就是错误信息优先的回调模式惯例。

const fs = require("fs");

function errorFirstCallback(err, data) {
  if (err) {
    console.error("There was an error", err);
    return;
  }
  console.log(data);
}

fs.readFile("/some/file/that/does-not-exist", errorFirstCallback);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29672.html

相关文章

  • phpnodeJs捕获异常回掉函数中的差异

    摘要:代码运行结果代码这里不会截获回调函数中的运行结果如下图结论在函数中可以捕获到异常,不行。可以用以下方式捕获,也就是错误信息优先的回调模式惯例。 php代码: try{ foo(2,function($param){ if($param==1){ throw new Exception(cathing); } });...

    bang590 评论0 收藏0
  • setTimeout与setInterval的区别nodejs中的差异

    摘要:关于定时器的源码在文件中,进入就关于定时器的一些设计解释,因为是做服务端代码,在内部等大部分事件都会创建一个定时器,任何时间都可能存在大量的定时器任务,所以设计一个高效的定时器是很有必要的。 博客文章地址 setTimeout与setInterval setTimeout 和 setInterval 是我们在 javaScript 中经常用到的定时器,setTimeout 方法用于...

    meislzhua 评论0 收藏0
  • JavaScript “跑马灯”抽奖活动代码解析与优化(一)

    摘要:最近的项目中做了一个跑马灯的抽奖特效插件。这里主要是来写写自己的优化过程。所以写代码的时候一定要注意一些小细节哈。。。在以后,其返回的元素顺序等同于在中出现的先后顺序。尽管是一个数组。这时从加入执行队列到加入执行队列中间时间间隔是。 最近的项目中做了一个跑马灯的抽奖特效插件。上篇文章已经分享过html和css 的相关知识。这篇文章主要分享一些 JavaScript 相关的知识。这几天在...

    isaced 评论0 收藏0
  • JavaScript “跑马灯”抽奖活动代码解析与优化(一)

    摘要:最近的项目中做了一个跑马灯的抽奖特效插件。这里主要是来写写自己的优化过程。所以写代码的时候一定要注意一些小细节哈。。。在以后,其返回的元素顺序等同于在中出现的先后顺序。尽管是一个数组。这时从加入执行队列到加入执行队列中间时间间隔是。 最近的项目中做了一个跑马灯的抽奖特效插件。上篇文章已经分享过html和css 的相关知识。这篇文章主要分享一些 JavaScript 相关的知识。这几天在...

    MRZYD 评论0 收藏0
  • JavaScript “跑马灯”抽奖活动代码解析与优化(一)

    摘要:最近的项目中做了一个跑马灯的抽奖特效插件。这里主要是来写写自己的优化过程。所以写代码的时候一定要注意一些小细节哈。。。在以后,其返回的元素顺序等同于在中出现的先后顺序。尽管是一个数组。这时从加入执行队列到加入执行队列中间时间间隔是。 最近的项目中做了一个跑马灯的抽奖特效插件。上篇文章已经分享过html和css 的相关知识。这篇文章主要分享一些 JavaScript 相关的知识。这几天在...

    HelKyle 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<