当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。