1
我想在Java腳本中用try catch來驗證日期輸入,但下面的代碼不能像我期望的那樣工作。 我期望輸入日期不是日期時的錯誤,catch應該執行,但這是我得到的。看到沒有新的日期,沒有顯示我所期望的。建議嘗試趕上javascript
console.log("min date :")
try{
minDate = new Date(elminDate.value)
}
catch(e){
console.log("error::")
console.log(err.name)
console.log("changed min")
minDate = new Date()
}
console.log(minDate)
console.log("max date :")
try{
maxDate = new Date(elmaxDate.value)
}
catch(err){
console.log("error::")
console.log(err.name)
console.log("changed max")
maxDate = new Date()
}
console.log(maxDate)
響應:
[Log] min date : (home.html, line 93)
[Log] Tue Aug 01 2017 02:00:00 GMT+0200 (CEST) (home.html, line 103)
[Log] max date : (home.html, line 105)
[Log] Invalid Date (home.html, line 115)
你確定日期構造函數拋出?當我使用無效數據時,我只是得到一個'日期',當轉換爲字符串時顯示'無效日期'。另見[這篇文章](https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript) – ASDFGerte
是的,我得到無效的日期,所以它只是一個字符串?我正在等待一個錯誤,但正如你所說,不會拋出它。 –
請參見[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_date),只有無效日期**上的某些方法可能會拋出,構造函數不會從我讀過的東西中解脫出來。這意味着它是一個無效的Date對象,不會拋出異常。再次請參閱[本文](https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript)來檢測無效日期。 – ASDFGerte