2012-09-11 43 views
5

我是JavaScript和節點的新手,並且一直在嘗試使用node.js和express來創建應用程序。node.js中的異常處理和快速

我已經把適當的回調錯誤,但他們都沒有把隨處可見,有時Node.js的服務器只是停止,因爲這涉及一些例外,它已建議

使用「暴發戶」或「永遠'保持node.js始終運行並啓動它,而不管node.js是否停止。

看來Express提供包羅萬象通過從鏈接http://expressjs.com/guide.html#error-handling

app.use(function(err, req, res, next){ 
    console.error(err.stack); 
    res.send(500, 'Something broke!'); 
}); 

現在正在爲我下面所有的異常。然而,我在某處讀到這樣的錯誤並不是一個好主意,因爲它可能會產生副作用,並會使變量處於不一致的狀態? 捕獲這樣的異常對於所有情況都不起作用,並且可能會出現某些情況,即服務器仍然可以停止某些異常。這是真的嗎?

我的問題可能是這樣的。

1)像上面那樣的異常處理是否可以讓一些變量處於不一致的狀態? 2)是否會有一些異常會導致服務器停止運行?

感謝&問候

圖科

+0

請參閱:http://machadogj.com/2013/4/error-handling-in-nodejs.html – vsync

回答

3

1)這是否異常處理方法可以處於不一致的狀態留一些變量,取決於具體的實現。

如果您將所有變量的範圍限定爲特定的請求和函數,並且不訪問全局或更高級的變量(如全局應用程序對象),那麼您將會很好。垃圾收集器發生異常後,未使用的內存會被清理乾淨。

2)是的,可能有一些例外情況停止服務器。因此,您應該爲此過程設置一個全局異常處理處理程序,如下所示:http://nodejs.org/api/process.html#process_event_uncaughtexception