Javascript:"扔未定义"?

时间:2015-05-05 09:27:20

标签: javascript error-handling

在下面的函数中,当条件失败时,我希望将情境作为一个简单的错误处理(不需要细节)。出于好奇,写throw undefined是否可以安全?

function splitYearMonth (YM) { // Returns ["yyyy-mm", yyyy, mm]
  try {
    var o = YM.match(/^(\d{4})\-(0[1-9]|1[012])$/);
    if (o != null) {
      return  [o[0], parseInt(o[1], 10), parseInt(o[2], 10)];
    } else {
      throw undefined;
    }
  } catch (e) {
    return [undefined, undefined, undefined];
  }
}

1 个答案:

答案 0 :(得分:1)

throw的语法是:

throw expression;

由于undefined是一个有效的表达式,所以这样做是安全的,尽管返回合理的错误消息通常是一种好习惯,例如:

throw "Failed to split year and month for the given input"