Поймать исключения из меньшего парсера в node.js - PullRequest
1 голос
/ 14 марта 2012

Я использую меньше с 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 Ответ

2 голосов
/ 14 марта 2012

Из того, что я вижу в источнике less.js , функция 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);
    }
  }
});
...