Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript Catch块未在typescript中执行_Javascript_Date_Angular_Typescript - Fatal编程技术网

Javascript Catch块未在typescript中执行

Javascript Catch块未在typescript中执行,javascript,date,angular,typescript,Javascript,Date,Angular,Typescript,我有一个简单的管道,它将传递的参数格式化为最新格式。如果转换无效,则会抛出错误。但实际上,它从未抛出一个错误,使其落在捕捉块中 import {PipeTransform, Pipe} from 'angular2/core'; @Pipe({ name: 'formatDate' }) export class FormatDatePipe implements PipeTransform { transform(value: string): any {

我有一个简单的管道,它将传递的参数格式化为最新格式。如果转换无效,则会抛出错误。但实际上,它从未抛出一个错误,使其落在捕捉块中

import {PipeTransform, Pipe} from 'angular2/core';

@Pipe({
    name: 'formatDate'
})

export class FormatDatePipe implements PipeTransform {
    transform(value: string): any {
        let date: string;
        try {
            date = new Date(value).toLocaleDateString();
        }
        catch (Exception) {
            return value;
        }
        finally {            
            return date;
        }        
    }

为什么即使传递了无效的日期也不执行catch块?

如果将无效的日期传递给构造函数,那么它不会对所有输入抛出错误,这取决于

您可以在以下位置阅读此内容:,其中链接到此“”

但是,如果它没有抛出错误,那么它将返回
无效日期
,因此您可以执行以下操作:

try {
    date = new Date(value).toLocaleDateString();
    if (date === "Invalid Date") {
        throw new Error(`invalid date value ${ value }`);
    }
}

这样即使在这种情况下,它也会抛出一个错误。

最后
看起来像是坏掉了。到底是什么原因造成的?为什么不简单
返回日期?这只是为了测试。我想试捕终于可以完成了。只是一种预感!