国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Node.js學(xué)習(xí)之路15——Domain捕獲錯誤

Cc_2011 / 3460人閱讀

摘要:可以通過監(jiān)聽該對象的事件并指定事件回調(diào)函數(shù)的方法來實現(xiàn)當(dāng)捕捉到錯誤時的處理。

1. 捕獲錯誤

try...catch機(jī)制不能捕獲異步方法拋出的錯誤

uncaughtException時間可以捕獲任何未被處理的錯誤,但是可能會引起內(nèi)存泄漏等情況

2. domain模塊獲取錯誤

使用domian模塊中的create方法創(chuàng)建一個domain對象,var domain = domain.create(),create方法沒有任何參數(shù),該方法返回被創(chuàng)建的Domain對象。該對象是一個繼承了EventEmitter類的實例對象,當(dāng)該對象捕獲到任何錯誤時,觸發(fā)該對象的error事件。可以通過監(jiān)聽該對象的error事件并指定事件回調(diào)函數(shù)的方法來實現(xiàn)當(dāng)捕捉到錯誤時的處理。domain.on("error", function(err){})

domain模塊中,為Domain對象定義了一個name屬性值,可以使用該屬性值來設(shè)置或獲取該Domain對象的名稱。

在Domain對象被創(chuàng)建后,需要指定該對象所監(jiān)聽的代碼,我們需要將這些代碼書寫在一個函數(shù)中,并且使用Domain對象的run方法指定Domain對象監(jiān)聽該函數(shù)中的代碼。當(dāng)這些代碼觸發(fā)任何錯誤時,將被Domain對象捕獲。Domain對象的run方法的指定方法如下domain.run(fn)

Domain對象的run方法中,使用一個參數(shù),參數(shù)值為一個函數(shù),當(dāng)該函數(shù)中觸發(fā)任何錯誤時,將被Domain對象捕獲。

當(dāng)Domain對象不再需要的時候,可以銷毀d.dispose();

示例
const http = require("http");
const domain = require("domain");
const process = require("process");
http.createServer(function (req, res) {
    var d = domain.create();
    d.name = "domainOne";
    d.once("error", function (err) {
        res.writeHead(200, { "Content-Type": "text/html" });
        res.write("")
        res.write("服務(wù)器端接收客戶端請求時發(fā)生以下錯誤:")
        res.end(err.message);
    })
    d.run(function () {
        if (req.url !== "/favicon.ico") {
            notexitsfunction(); //this is an error
            res.writeHead(200, { "Content-Type": "text/html" });
            res.write("")
            res.end("hello");
        }
        process.nextTick(() => {
            setTimeout(() => {
                fs.open("./notExistFile.txt", "r", (err, fd) => {
                    if (err) {
                        throw err;
                    }
                })
            })
        })

    })

}).listen(2576, "localhost")

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/92955.html

相關(guān)文章

  • Node.js學(xué)習(xí)之路17——DNS模塊介紹

    摘要:在中,提供模塊,以實現(xiàn)域名查找及域名解析的處理。方法用于將一個域名解析為一組記錄。記錄是域名服務(wù)器記錄,用來指定該域名由哪個服務(wù)器進(jìn)行解析。回調(diào)函數(shù)有兩個參數(shù),是域名解析失敗時觸發(fā)的錯誤對象,參數(shù)為一個數(shù)組,其中存放了所有獲取到的記錄。 1. DNS 在Node.js中,提供DNS模塊,以實現(xiàn)域名查找及域名解析的處理。 在DNS模塊中,提供了三個主方法及一系列便捷方法。 reso...

    roadtogeek 評論0 收藏0
  • Node.js 指南(域模塊剖析)

    摘要:快速檢查可能告訴我們,簡單地從的域處理程序拋出將允許然后捕獲異常并執(zhí)行其自己的錯誤處理程序,雖然情況并非如此,檢查后,你會看到堆棧只包含。 域模塊剖析 可用性問題 隱式行為 開發(fā)人員可以創(chuàng)建新域,然后只需運行domain.enter(),然后,它充當(dāng)將來拋出者無法觀察到的任何異常的萬能捕捉器,允許模塊作者攔截不同模塊中不相關(guān)代碼的異常,防止代碼的發(fā)起者知道自己的異常。 以下是一個間接鏈...

    ymyang 評論0 收藏0
  • Node.js學(xué)習(xí)之路19——punycode模塊與os模塊

    摘要:模塊轉(zhuǎn)換為編碼模塊內(nèi)部使用類庫以將域名從地方語言所采用的各種編碼轉(zhuǎn)換為可用于服務(wù)器的編碼因為操作系統(tǒng)的核心都是英文服務(wù)器的解析也是由英文代碼交換所以服務(wù)器并不支持直接的使用地方語言的域名解析所有地方語言域名的解析都需要轉(zhuǎn)成編碼然后由服務(wù)器解 1. punycode punycode模塊轉(zhuǎn)換為punycode編碼 punycode模塊內(nèi)部使用punycode.js類庫,以將域名從地方...

    xumenger 評論0 收藏0
  • Node.js 全局對象 process

    摘要:是一個全局變量,對象的屬性。的源碼啟動進(jìn)程,評估時返回函數(shù)失敗。調(diào)用監(jiān)聽器回調(diào)函數(shù)時會將的值作為唯一參數(shù)傳入。信號列表詳見標(biāo)準(zhǔn)的信號名,如等。返回一個對象,描述了進(jìn)程所用的內(nèi)存狀況,單位為字節(jié)。一旦當(dāng)前事件循環(huán)結(jié)束,調(diào)用回調(diào)函數(shù)。 process是一個全局變量,global對象的屬性。它的作用是描述當(dāng)前Node.js進(jìn)程狀態(tài)的對象,提供了一個與操作系統(tǒng)的簡單接口。通常在你寫本地命令程序...

    JasonZhang 評論0 收藏0
  • 高質(zhì)量 Node.js 微服務(wù)的編寫和部署

    摘要:編寫代碼的開發(fā)人員必須負(fù)責(zé)代碼的生產(chǎn)部署。構(gòu)建和部署鏈需要重大更改,以便為微服務(wù)環(huán)境提供正確的關(guān)注點分離。該對象會在之后的時被這時的回調(diào)函數(shù)會被調(diào)用,并輸出。微服務(wù)部署及集成部署微服務(wù)時有一個原則一個容器中只放一個服務(wù),可以使用編 前幾天在微信群做的一次分享,整理出來分享給大家,相關(guān)代碼請戳 https://github.com/Carrotzpc/docker_web_app sho...

    szysky 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<