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 }`);
}
}
这样即使在这种情况下,它也会抛出一个错误。
最后
看起来像是坏掉了。到底是什么原因造成的?为什么不简单返回日期代码>?这只是为了测试。我想试捕终于可以完成了。只是一种预感!