W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
任何全局未處理的異常都可以通過(guò)監(jiān)聽(tīng)進(jìn)程上的“uncaughtException”事件來(lái)攔截。
為了方便記錄錯(cuò)誤,使用錯(cuò)誤代碼退出此過(guò)程。
process.on("uncaughtException", function (err) {
console.log("Caught exception: ", err);
console.log("Stack:", err.stack);
process.exit(1);
});
// Intentionally cause an exception, but don"t try/catch it.
nonexistentFunc();
console.log("This line will not run.");
如果任何事件發(fā)射器引發(fā)`error`事件,并且沒(méi)有為此事件預(yù)訂事件發(fā)射器的監(jiān)聽(tīng)器,則在進(jìn)程上也會(huì)引發(fā)`uncaughtError`事件。
exit事件在進(jìn)程即將退出時(shí)發(fā)出。
在這一點(diǎn)上沒(méi)有辦法中止退出。事件循環(huán)已經(jīng)在拆卸,所以你不能在此時(shí)執(zhí)行任何異步操作。
process.on("exit", function (code) {
console.log("Exiting with code:", code);
});
process.exit(1);
事件回調(diào)在進(jìn)程退出的退出代碼中傳遞。
這個(gè)事件最有用目的是用于調(diào)試和記錄。
Node.js過(guò)程對(duì)象也支持UNIX的信號(hào)概念,這是一種進(jìn)程間通信的形式。
要在終端中處理Ctrl+C組合鍵,添加監(jiān)聽(tīng)器訂閱 SIGINT
(信號(hào)中斷)事件,監(jiān)聽(tīng)器被調(diào)用,你可以選擇是否要退出進(jìn)程(process.exit)或繼續(xù)執(zhí)行。
以下代碼處理Control-C事件,并選擇繼續(xù)運(yùn)行并在五秒鐘后退出。
setTimeout(function () {
console.log("5 seconds passed. Exiting");
}, 5000);
console.log("Started. Will exit in 5 seconds");
process.on("SIGINT", function () {
console.log("Got SIGINT. Ignoring.");
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: