Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建议使用try-catch-javascript_Javascript_Html_Try Catch - Fatal编程技术网

建议使用try-catch-javascript

建议使用try-catch-javascript,javascript,html,try-catch,Javascript,Html,Try Catch,我试图用java脚本中的try-catch验证日期输入,但是下面的代码并没有像我预期的那样工作。 我希望输入的日期不是日期时会出现错误,应该执行catch,但我得到的结果如下。看不到新的日期,也看不到我期望的结果 console.log("min date :") try{ minDate = new Date(elminDate.value) } catch(e){ console.log("error::") cons

我试图用java脚本中的try-catch验证日期输入,但是下面的代码并没有像我预期的那样工作。 我希望输入的日期不是日期时会出现错误,应该执行catch,但我得到的结果如下。看不到新的日期,也看不到我期望的结果

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)

Date
构造函数不会在无效日期抛出异常,而是在Date对象中生成一个NaN值。您可以进行以下测试:

console.log("date :");
date = new Date(elDate.value);
if (isNaN(date)) {
    console.log("error: Invalid Date");
    console.log("changed date to now");
    date = new Date();
}
console.log(date)

你确定构造函数抛出的日期吗?当我将它与无效数据一起使用时,我只会得到一个
日期
,当转换为字符串时,它会显示
无效日期
。也看到是的,我得到了无效的日期,所以它只是一个字符串?我在等待一个错误,但正如你所说,它不会抛出错误。看,只有无效日期的一些方法可能抛出错误,构造函数不会根据我所读的内容抛出错误。这意味着它是一个无效的
Date
对象,不会抛出任何异常。再次,请参阅以检测无效日期。这很完美,感谢您的帮助,我正在使用tostring方法,如果是,请将其与无效日期进行比较并更改日期。这就是我要找的,谢谢