2012-03-14 91 views
1

我在node.js中使用較少的內容,並且在處理錯誤時我並不高興。我的代碼如下所示:在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塊中包裝函數調用沒有幫助。如果文件較少時發生錯誤,是否有可能使進程失敗得更加正常?

回答

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); 
    } 
    } 
}); 
+0

非常感謝:) – 2012-03-15 07:32:21