gpt4 book ai didi

java - 当每行都可以抛出时避免多次 try catch

转载 作者:行者123 更新时间:2023-12-02 11:27:28 25 4
gpt4 key购买 nike

假设我有以下陈述:

        try {
this.startTime = dateFormat.parse(startTime);
this.endTime = dateFormat.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}

这里两行都可以抛出异常,但如果 startTime 为空但 endTime 不为空,则在该 block 的末尾两者都将为空。

是否有一种方法可以捕获异常并仍然遍历每个语句,而无需为每个语句创建 try catch block ?

最佳答案

没有。

抛出异常后,try block 中的执行将被“中断”。因此,如果您希望执行后续行,尽管抛出异常,它们不应该位于 try block 中。所以你最终可能会得到:

try {
this.startTime = dateFormat.parse(startTime);
} catch (ParseException e) {
e.printStackTrace();
}
try {
this.endTime = dateFormat.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}

提取像 parseDate 这样的方法来使事情变得更好:

    this.startTime = parseDate(startTime);
this.endTime = parseDate(endTime);

关于java - 当每行都可以抛出时避免多次 try catch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508555/

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