从node.js中较少解析器捕获异常

时间:2012-03-14 12:38:50

标签: node.js less

我对node.js的使用较少,而且在处理错误时我并不高兴。我的代码如下所示:

parser.parse(data, function (err, tree) {
    if(err){
      console.log(err);
      res.send(500);
    }else{
      res.header('Content-Type', 'text/css');
      res.send(tree.toCSS());
    }
  });

我的问题是,如果我的一个较少的文件有语法错误,并抛出异常,则会导致进程崩溃。在try块中包装函数调用并没有帮助。当较少的文件中出现错误时,是否可以更优雅地使过程失败?

1 个答案:

答案 0 :(得分:2)

从我在the less.js source中看到的情况来看,parse()函数不会因为语法错误而抛出异常,但toCSS()函数可以。

parser.parse(data, function (parseError, tree) {
  var css;

  if (parseError) {
    console.log(parseError);
    res.send(500);
  } else {
    res.header('Content-Type', 'text/css');
    try {
      css = tree.toCSS();
      res.send(css);
    } catch (ex) {
      console.log(ex);
      res.send(500);
    }
  }
});