Error定义了Node中常见的错误类型,我们可以使用Error进行错误的抛出。Error模块里面包含了一个堆栈轨迹用于描述Error是从哪里产生的,一般来说我们可以准确知道错误发生在哪一部分的代码当中,根据错误的描述信息可以快速定位到错误。
var fs = require(“fs”);
fs.readFile(“file”,function(err,data){
if(err){
throw new Error(“Error!”)
}
})
Node程序中产生的所有Error都是使用Error类的实例或者继承自Error类。我们在程序代码不中不仅可以使用回调函数自带的Error模块,而且我们可以显示第捕获错误。比如当你知道逻辑代码运行都某一部分是不对的,应该进行错误的捕获和提醒,你就可以使用:
throw new Error(“自定义错误信息!”)
接下来就简单介绍一下Node中我们是如何进行错误捕获的,总的来说我们可以有以下三种方式,try/catch、callback、event。之前我们常用的try/catch方式只适用于同步的调用情况,但是我们知道node中会出现很多的异步调用方式。
try/catch
首先我们应该了解的是在异步操作当中该方法是无法捕获错误的,主要原因就是因为异步调用返回时,代码的上下文已经改变,回调函数当中的代码已经脱离了try/catch的范围,所以是无法捕获的。
同步调用情况:
//这里可以捕获
try{