Node.js應用程序因setInterval中的無效異常而終止。我嘗試通過process.on('uncaughtException',..)和域方法(參見下面的代碼)修復它。雖然處理了異常,但應用程序仍然被終止。如何防止node.js應用程序終止在setInterval中未處理的異常?
function f() {
throw Error('have error')
}
process.on('uncaughtException', function(err){
console.log("process.on uncaughtException")
})
var d = require('domain').create();
d.on('error',function(err){
console.log("domain.on error")
})
d.run(function(){
setInterval(f, 1000)
})
// program terminated and output is: domain.on error
http://nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors – jgillich
@ jgillich的鏈接非常重要。域不是爲了避免崩潰,它們意味着在錯誤發生之後清理並最終關閉。如果一個人死亡,你通常會使用一個進程監視器來啓動一個新進程。 – loganfsmyth