繁体   English   中英

Node中“ fs”中的函数的错误约定是什么?

[英]What is the error contract for functions from “fs” in Node?

在用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是引发错误时的堆栈跟踪。

一些开发人员还使用自定义属性来添加有关该错误的更多详细信息。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM