在平时开发中,遇到异常都throw出去。
请问一下大家都是怎么处理异常的?我发现throw出去的异常有时候会被express内置的异常处理程序获取到,然后渲染了一个error模板。而有时候则会直接导致整个程序的崩溃……
用 cluster模块开多核 if(cluster.isMaster){ console.log(“宿主启动…”); for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on(‘listening’,function(worker,address){ console.log(‘核心’+i+’ pid:’+ worker.process.pid); }); cluster.on(‘exit’, function(worker, code, signal) { console.log(‘核心’+i+’ pid:’+ worker.process.pid+’ 重启’) setTimeout(function() {cluster.fork();},2000); }); }else{ app.set(‘port’,5173); app.listen(app.get(‘port’)); }
单线程中断自动延时重启。7*24小时。就算你程序全是错,线程也挂不掉哦。
在Node里,异步回调函数内抛出的异常无法捕获,会产生uncaughtException
事件,导致整个进程挂掉
目前主要有两种处理方式:自行在回调函数内try/catch
,然后返回error
对象,或者使用domain
我是直接在app.js最开始写
process.on('uncaughtException', function (err) {
console.log('Caught exception: ', err);
});