node運(yùn)行過程中,如遇到?jīng)]有捕獲異常骗卜,則自行中斷退出。
像缺少依賴等常見問題左胞,還好辦寇仓;但像AEDDRINUSE這種錯(cuò)誤就很難判斷,可能會(huì)摸不到頭腦烤宙,會(huì)導(dǎo)致mac客戶端不能重啟成功遍烦,因?yàn)槟阋_啟兩個(gè)相同的服務(wù)(windows還是能夠開的,但也會(huì)報(bào)錯(cuò)提示)躺枕。不是代碼的問題服猪,有時(shí)候會(huì)相當(dāng)不好辦。要想快速鎖定問題拐云,最好在node中加入異常事件的捕獲解決方案:
process.on('uncaughtException', function(err) {
? ? console.log( ('出錯(cuò)了 :' + err).red );
});
PS:.red 是利用colors模塊提供的方法罢猪,提示作用。
我們也可以使用domain進(jìn)行異常事件處理叉瘩,但個(gè)人感覺不是很理想膳帕,因?yàn)閐omain需要引用單獨(dú)模塊,另外通過uncaughtException能夠提供很多有用的信息了薇缅,感覺domain其他信息有些多余危彩,個(gè)人認(rèn)為快速的定位問題才是最主要的,同時(shí)要簡單泳桦。