gpt4 book ai didi

javascript - Catch block 不在 typescript 中执行

转载 作者:太空狗 更新时间:2023-10-29 17:59:48 26 4
gpt4 key购买 nike

我有一个简单的管道,它将传递的参数格式化为日期格式。如果它是一个无效的转换,那么它会抛出一个错误。但它实际上从来没有抛出错误以落入 catch block 。

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 block ?

最佳答案

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

您可以在这里阅读:Fall-back to implementation-specific date formats ,它链接到这个“rough outline on how the parsing works”。

但似乎如果它没有抛出错误就会返回 Invalid Date,所以你可以这样做:

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

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

关于javascript - Catch block 不在 typescript 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com