总结了一些在Node.js的错误类型

总结了一些在Node.js的错误类型
前言

可能会有各种各样的在Node.js应用程序错误类型。例如,当一个语法错误或运行时错误发生时,它会触发Javascript错误。当试图访问一个不存在或不访问的文件时,它会触发系统错误。除了Javascript错误和系统错误外,用户还可以自定义错误。

1。错误分类
Node.js是一个Javascript运行平台,其应用程序错误是一个错误的实例或错误的子类的实例。

在Node.js的应用,有4种可能发生的错误。

1。标准Javascript错误,例如:
:扔掉当调用eval()失败
当使用非法Javascript语法时
当某个值不在指定的范围内时,抛出该值。
当使用未定义变量时抛出
当传递错误的类型参数被抛出时
当一个全局URI函数被误用时,它就会被抛出。
2。系统错误。这种类型的错误是由底层系统触发,如试图打开一个并不存在的文件,试图通过关闭插座发送数据,等等。
三.自定义错误,这种错误是由应用程序代码中的用户指定的代码触发的。
4。断言错误,这种错误是引发的维护模块的Node.js当代码违反合法的逻辑。

2。Javascript错误和系统错误
2.1 Javascript错误和自定义错误

Javascript语言提供标准的Javascript错误来表示语法错误或API的不正确使用,所有错误都是错误类的实例,标准Javascript错误是由语言本身在错误时构建的。

定义自定义错误时,可以使用构造函数创建实例:
> >把新的错误(错误,这是错误的);
错误:是错误的,这是错误的信息
在REPL:1:7
在REPLServer.defaultEval(REPL。JS:248:27)
在绑定(域。JS:280:14)
在replserver.runbound { eval }(域。JS:293:12)
在replserver。(REPL。JS:412:12)
在emitone(事件。JS:82:20)
在REPLServer.emit(事件。JS:169:7)
在replserver。接口。_online(Readline。JS:210:10)
在replserver。接口。_line(Readline。JS:549:8)
在replserver。接口。_ttywrite(Readline。JS:826:14)
如上所述,我们定制一个错误并用抛出关键字抛出错误。在这个错误对象中,包括错误信息消息和错误堆栈信息堆栈,在捕获异常之后,我们可以通过以下两个属性访问这些信息。

1、error.message错误信息
2、error.stack错误堆栈跟踪信息
除了错误实例本身的属性之外,还可以定制一些错误属性:
var错误=新错误(您访问的页面不存在);
error.status = 404;
2.2系统误差

系统错误是Javascript错误错误对象的扩展。它们表示程序可以处理操作错误,所有这些错误都是在系统级生成的。在系统错误情况下,除了错误实例中的属性外,还包含以下属性:

1、error.syscall -表示字符串失败的系统调用信息
2、error.errno整数错误代码
3、error.code -一个错误的字符串,通常一个大写字母E开头
三.异常捕获
Node.js使用事件驱动的异步编程为基础的系统,这意味着尝试/抓住可以捕获错误,不要在异步处理中发生。在这种情况下,我们可以使用以下两种方式采集或传输错误:

在js回调函数捕获异常

Node.js有很多异步API,其次是回调函数回调。如果发生错误,一个错误的对象通常包括在回调函数的第一个参数;如果没有错误,第一个参数将是空的。如:
const FS =需要('fs);
fs.readfile(A不存在的文件(呃,数据)= > {
如果(错误){
Console.error(读取文件错误,错误);
返回;
}
/其他
});
基于事件的错误处理

如果对象是EventEmitter,可以捕获和处理错误的对象the'error'event:
Const net = require ('net');
const连接= net.connect('localhost);

/ /添加a'error'event处理流:
connection.on(错误的(错误)= > {
如果连接被重置,服务器或未连接到指定的服务器
/或其他连接错误,错误将转移到这里。
Console.error(ERR);
});

connection.pipe(过程输出);
总结

The above is a summary of some types of errors in Node.js, which can understand the types of errors in Node.js, and help us do better error handling and exception capture.I hope that the content of this article will help you.
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部