如果没有正确的捕获错误、处理错误。代码执行时,可能会发生各种异常:崩溃、内存占用巨大、CPU使用率100%!

那么,Node中有哪些错误种类?又如何捕获错误呢?

  • 显式异常

由throw抛出的异常,我们称之为显式异常。

显式异常抛出例程:

function format_name(name){
  if(!name){
    throw new Error("name is required");
  }
}

显示异常可以用try/catch捕获:

function format_name(name){
  if(!name){
    throw new Error("name is required");
  }
}

try{
  format_name();
}catch(e){
  console.log(e.message,e.stack);
}
 

运行结果:

需要注意的是,throw只能用于同步方法,或者异步方法中异常发生前。