Node 關(guān)于 Error 一些信息與總結(jié)

Error 是經(jīng)常碰見(jiàn)缅糟,卻又不是很了解的一個(gè)對(duì)象;接下來(lái)我會(huì)總結(jié)一些 Error 的一些用法,還有 Node 對(duì)其的一些做法夜牡。

1.創(chuàng)建異常錯(cuò)誤

new Error('exception'); //創(chuàng)建一個(gè)異常錯(cuò)誤對(duì)象。
throw new Error('exception');//創(chuàng)建一個(gè)對(duì)象并拋出錯(cuò)誤侣签,如果不捕獲則 node 崩潰塘装。
//在堆棧里會(huì)顯示:message:"exception",node 并推出進(jìn)程影所。

2.try catch 捕獲異常對(duì)象

 try {
   throw new Error('exception')
} catch (e) {
    console.log(e);
}
//node 崩潰蹦肴, 并在控制臺(tái)打印異常信息
Error: exception
 at Object.<anonymous> (c:\Users\Administrator\Desktop\test\app.js:4:10)
 at Module._compile (module.js:556:32)
 at Object.Module._extensions..js (module.js:565:10)
 at Module.load (module.js:473:32)
 at tryModuleLoad (module.js:432:12)
 at Function.Module._load (module.js:424:3)
 at Timeout.Module.runMain [as _onTimeout] (module.js:590:10)
 at tryOnTimeout (timers.js:232:11)
 at Timer.listOnTimeout (timers.js:202:5)

由上可知,error 創(chuàng)建的時(shí)候可以攜帶一些信息猴娩,并且在 error 被捕獲的時(shí)候顯示出來(lái)阴幌。

3.關(guān)于異步函數(shù)觸發(fā)異常錯(cuò)誤,是不能被try catch 捕獲的卷中。

try {  
     setTimeout(function () {
        throw new Error('async error'); // 拋出一個(gè)異常錯(cuò)誤矛双,這是因?yàn)楫惒胶瘮?shù)執(zhí)行上下文不同,所以捕獲不到蟆豫。
    }, 1000);
} catch (e) {
    console.log(e);
}

所以 callback 異步風(fēng)格第一個(gè)參數(shù)都是 error议忽,不拋出錯(cuò)誤,error 傳送出去十减。

4.為了捕獲異步產(chǎn)生的異常錯(cuò)誤栈幸,可以用 domain 模塊

var domain = require('domain');
var d = domain.create();
d.run(function () {
    setTimeout(function () {
        throw new Error('async error'); // 拋出一個(gè)異步異常
    }, 1000);
});

d.on('error', function (err) {
    console.log(err); // 這里可以捕獲異步異常
});

這個(gè)模塊線上我沒(méi)用過(guò),也就是包裹異步的函數(shù)帮辟,可以相當(dāng)于try catch 包裹一樣速址。

  1. 還有 express 掛載接受 error 的函數(shù)
app.use(function (err,req,res,next){
   //前面的中間件的錯(cuò)誤next(err),都在這里接收。
});

6.還有一個(gè)全局捕獲異常錯(cuò)誤的方法织阅,不過(guò)在這里捕獲已經(jīng)失去上下文了壳繁,但是可以防止 node 崩潰。

process.on('uncaughtException', function (err) {
  
});

我的個(gè)人博客:http://liangtongzhuo.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闹炉,一起剝皮案震驚了整個(gè)濱河市蒿赢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渣触,老刑警劉巖羡棵,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嗅钻,居然都是意外死亡皂冰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)养篓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秃流,“玉大人,你說(shuō)我怎么就攤上這事柳弄〔罢停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碧注,是天一觀的道長(zhǎng)嚣伐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)萍丐,這世上最難降的妖魔是什么轩端? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮逝变,結(jié)果婚禮上基茵,老公的妹妹穿的比我還像新娘。我一直安慰自己壳影,他們只是感情好耿导,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著态贤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪醋火。 梳的紋絲不亂的頭發(fā)上悠汽,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音芥驳,去河邊找鬼柿冲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兆旬,可吹牛的內(nèi)容都是我干的假抄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宿饱!你這毒婦竟也來(lái)了熏瞄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谬以,失蹤者是張志新(化名)和其女友劉穎强饮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體为黎,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邮丰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铭乾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剪廉。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖炕檩,靈堂內(nèi)的尸體忽然破棺而出斗蒋,到底是詐尸還是另有隱情,我是刑警寧澤捧书,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布吹泡,位于F島的核電站,受9級(jí)特大地震影響经瓷,放射性物質(zhì)發(fā)生泄漏爆哑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一舆吮、第九天 我趴在偏房一處隱蔽的房頂上張望揭朝。 院中可真熱鬧,春花似錦色冀、人聲如沸潭袱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屯换。三九已至,卻和暖如春与学,著一層夾襖步出監(jiān)牢的瞬間彤悔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工索守, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晕窑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓卵佛,卻偏偏與公主長(zhǎng)得像杨赤,于是被迫代替她去往敵國(guó)和親敞斋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容