每条线都可以避免多次尝试捕获

时间:2018-03-27 09:01:14

标签: java exception syntax

假设我有以下陈述:

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

这两行都可以抛出异常,但如果startTime为空但endTime不是,则在此块的末尾都将为null。

有没有办法捕获异常并仍然遍历每个语句而不为每个语句创建try catch块?

1 个答案:

答案 0 :(得分:1)

没有

抛出异常后,try - 块中的执行将被“破坏”。因此,如果您希望后续行执行尽管抛出异常,它们不应该在try块中。所以你最终会得到:

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);