正确的错误抛出函数参数验证

时间:2017-05-22 20:15:29

标签: javascript validation error-handling runtime-error throw

我有以下类型的函数定义:

const myModule = function (value1) {

  // Is value1 missing?
  if (typeof(value1) === 'undefined') {
    throw new Error('value1 is missing')
  }

  // Do stuff here

}

需要将value1参数/参数传递给函数。如果它丢失了,那么我需要抛出一个错误。我正确地抛出了错误吗?当我运行它时,我在控制台中得到这种类型的输出:

/Users/me/script.js:10
    throw new Error('value1 is missing')
    ^

Error: value1 is missing
    at new myModule (/Users/me/script.js:10:11)

这是正确的方法吗?将实际的throw语句输出到控制台中似乎很奇怪。

1 个答案:

答案 0 :(得分:1)

是的,使用 throwstatement 是在JavaScript中抛出错误的正确方法。但是你可以使用Console内置方法,它会让你抛出不同类型的错误。

如果您有不同类型的消息/错误/例外情况,您可以从Console methods 中获利:

  

Console.error()

     

输出错误消息。你可以使用字符串替换和   使用此方法的其他参数。

     

Console.info()

     

信息记录信息。你可以使用字符串   使用此方法替换和附加参数。

     

Console.log()

     

用于记录信息的一般输出。你可以使用字符串   用这种方法替换和附加参数。

     

Console.trace()

     

输出堆栈跟踪警告消息。您可以在此方法中使用字符串替换和其他参数。

     

Console.warn()

     

输出警告信息。您可以在此方法中使用字符串替换和其他参数。

<强>演示:

这是一个简单的演示,展示了这些方法的使用:

const myModule = function(value1) {

  // Is value1 missing?
  if (!value1) {
    console.error('value1 is missing!!!');
  //Is value a string?
  } else if (typeof value !== "string") {
    console.warn('value1 must be a string!!!');
  }
  // Do stuff here

}