當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js util.getSystemErrorName()用法及代碼示例


util.getSystemErrorName()方法在Node.js標準庫的實用程序模塊中定義。它用於了解程序中發生的錯誤的類型。通常,此方法在其他方法中使用,以了解該方法是否未按預期方式提供響應,因為發生了某些錯誤,然後確定了哪種類型的錯誤可確保程序不會中斷。

用法

util.getSystemErrorName( err )

參數:此方法接受單個參數‘err’,該參數保存一個用於指定錯誤號或錯誤代碼的數值。此錯誤代碼來自Node.js API本身。

返回值:返回字符串名稱,即數字錯誤代碼的錯誤名稱。

注意:有一些常見的係統錯誤映射到特定的錯誤代碼。係統錯誤和錯誤代碼之間的映射取決於平台。一些常見的係統錯誤如下所示。



  • EACCES(權限被拒絕):當文件試圖訪問其訪問權限被禁止的文件時,發生此錯誤。
  • EADDRINUSE(已使用的地址):當由於本地係統上的另一台服務器已將某個服務器(net,http或https)綁定到本地地址而失敗時,就會發生這種情況。
  • ECONNRESET(由對等方重置連接):這在對等方強行關閉連接時發生。這通常是由於超時或重新啟動導致遠程套接字上的連接丟失而導致的。
  • EISDIR(是目錄):當操作需要文件但給出目錄的路徑名時,會發生這種情況。
  • EMFILE(係統中打開的文件太多):當達到係統上允許的最大文件描述符數量,並且在至少關閉一個描述符之前,無法滿足對另一個描述符的請求,才會發生這種情況。一次並行打開多個文件時會遇到這種情況。
  • ENOENT(沒有這樣的文件或目錄):當指定路徑名的組件不存在時,fs操作通常會引發此錯誤,即給定路徑找不到任何實體(文件或目錄)。
  • ENOTDIR(不是目錄):當存在給定路徑名的組件但不是目錄時,就會發生這種情況。
  • ENOTEMPTY(目錄不為空):當請求的目錄不為預期的空時,會發生這種情況。
  • TIMEDOUT(操作超時):這是在建立連接並發送請求但由於一段時間後被連接方未正確響應而失敗而發生的情況。

範例1:

// Importing File System module 
const fs = require('fs') 
  
// Importing utilities module 
const util = require('util') 
  
fs.readdir('file/not/exist', (err, files) => { 
  if(err){ 
    const errName = util.getSystemErrorName(err.errno) 
    console.log(`Error Name --> ${errName}`) 
    console.log(`Error Code --> ${err.errno}`) 
  }else{ 
    for(let file in files){ 
      console.log(file) 
    } 
  }  
}) 

輸出:

Error Name --> ENOENT
Error Code --> 4058

說明:程序本質上是提取給定目錄中的所有文件和文件夾。 fs.readdir()方法采用目標目錄的路徑。如果給定的路徑無效,則會發生錯誤,這可能會破壞我們的程序,因此必須處理該錯誤並向用戶提供一些有效的輸出,以使用戶知道發生錯誤的原因。這裏使用getSystemErrorName()方法來處理錯誤,該方法返回發生的錯誤的名稱。

範例2:

// Importing File System module 
const fs = require('fs') 
  
// Importing utilities module 
const util = require('util') 
  
fs.readdir('./index.js', (err, files) => { 
  if(err){ 
    const errName = util.getSystemErrorName(err.errno) 
    console.log(`Error Name --> ${errName}`) 
    console.log(`Error Code --> ${err.errno}`) 
  }else{ 
    for(let file in files){ 
      console.log(file) 
    } 
  }  
}) 

輸出:

Error Name --> ENOTDIR
Error Code --> 4052

說明:程序本質上是提取給定目錄中的所有文件和文件夾。 fs.readdir()方法采用目標目錄的路徑。由於給定的路徑不是目錄而是文件,因此會發生名為ENOTDIR的錯誤。




相關用法


注:本文由純淨天空篩選整理自hunter__js大神的英文原創作品 Node.js | util.getSystemErrorName() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。