Node 中 "fs" 函数的错误协定是什么?



在我用JavaScript为Node编写的应用程序中,我不想尝试从文件系统错误中恢复。为了做到这一点,我需要知道这个错误可能是什么。手册没有说太多。所以我的问题是:

  • 错误对象的合同是什么?那个错误对象可能是什么

示例:

readFile('file/path', function (error, data) {
    if (error) throw error;
    console.log(data);
});

所有返回的错误都继承自JavaScript错误对象(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error),分为两类:JS错误和系统错误。

如果没有错误,则单操作API(例如示例中的readFile方法)返回null或error实例(https://nodejs.org/api/errors.html)。常见的系统错误,如权限被拒绝或没有这样的文件可以返回,并且可以在这里找到一个详尽的列表:

http://man7.org/linux/man-pages/man3/errno.3.html

这里有很多文档,您只需要小心地正确捕捉错误,尤其是在使用异步方法时。

错误是JS对象的实例,并且具有属性。你可以做一些类似的事情:

    if (e.code === 'EISDIR') { 
        console.log("Is not a directory!"); 
    } else { 
        throw e; 
    }

请在此处查看Node Error对象的文档。

错误

通常它会有一个消息和堆栈属性。message属性是关于引发的错误的详细消息。stack是引发错误时的堆栈跟踪。

一些开发人员还设置了自定义属性,以添加有关错误的更多详细信息。希望这能有所帮助。

最新更新