假设我有以下陈述:
try {
this.startTime = dateFormat.parse(startTime);
this.endTime = dateFormat.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}
这两行都可以抛出异常,但如果startTime为空但endTime不是,则在此块的末尾都将为null。
有没有办法捕获异常并仍然遍历每个语句而不为每个语句创建try catch块?
答案 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);