在下面的函数中,当条件失败时,我希望将情境作为一个简单的错误处理(不需要细节)。出于好奇,写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];
}
}
答案 0 :(得分:1)
throw的语法是:
throw expression;
由于undefined
是一个有效的表达式,所以这样做是安全的,尽管返回合理的错误消息通常是一种好习惯,例如:
throw "Failed to split year and month for the given input"