gpt4 book ai didi

Java DateTime,ParseException 的无法访问的捕获 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:34 31 4
gpt4 key购买 nike

这是将日期对象解析为特定模式的方法。但它给出了 catch block 的错误,说它无法访问,我可以删除 catch block 或直接抛出异常。我想要 catch block 的原因是在发生任何错误时具有可见性。

public static Date parseDate(Date a, String someFormat) {
Date parsedDate = null;
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern(someFormat);
try {
Instant instant = a.toInstant();

LocalDate localDate =LocalDate.parse(dateFormat.format(instant), dateFormat);
parsedDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
} catch (ParseException e) {
logger.error(ExceptionUtils.getRootCauseMessage(e), e);
}
return parsedDate;
}

最佳答案

try block 抛出的唯一已检查异常不是 ParseException,这是 SimpleDateFormat 会抛出的异常,而是 DateTimeParseException,即 LocalDate.parse抛出一个DateTimeParseException不是 ParseException

编译器将 catch block 视为不可访问,因为 ParseException 从未从 try block 中抛出。

只需捕获 DateTimeParseException 即可。

} catch (DateTimeParseException e) {

请注意,因为它是一个RuntimeException,所以完全没有必要捕获它。但是由于您已经在尝试拥有“可见性”,这是一件好事,并且您已经在 try catch 异常,因此只需捕获正确的异常类型即可。

关于Java DateTime,ParseException 的无法访问的捕获 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105599/

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