关于javascript:try catch没有捕获无效日期

try catch does not catch invalid date

本问题已经有最佳答案,请猛点这里访问。

我试图验证一个日期输入,所以如果它是正确的,我处理一种方法,如果无效,我处理另一种方法…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var date, datestring, e;

datestring ="2012-03-222";

try {
  date = new Date(datestring);
  /* Ends up logging `Invalid Date`
  */


  console.log(date);
} catch (_error) {
  e = _error;
  /* Should come here and log `Error: Invalid Date` or the likes
  */


  console.log("Erorr:" + e);
}

我可以检查返回的字符串,看看它是否是Invalid Date,但都惊讶于try/catch不适用于这种情况,并担心可能有其他错误消息我不匹配。

我该如何处理这个问题?


如果日期对象无效,则不会引发错误。此相关问题中描述的方法将确定日期是否有效。