1 回答
TA贡献1794条经验 获得超8个赞
抛出异常是昂贵的操作。因此,如果您考虑两种选择 - 投掷和不投掷,那么不投掷是更好的方法。
然而,使用异常作为doStuffWithExceptionin的输入参数try-block,感觉代码很小。因此,我建议重构异常处理逻辑,使其不依赖异常作为输入参数。
如果您根据异常中的某些数据来处理异常情况 - 提取该数据并传递给handle方法。基本上,不要将异常用作 DTO 或 POJO(因为异常不是用于此目的)。
总结一下,我建议使用类似以下片段的内容:
try {
throwCheckedException();
if (!someBoolean) {
Data data = createData();
handle(data);
}
} catch (IOException e) {
Data data = createDataFromMessage(e.getMessage());
handle(data);
}
或者,减少内部嵌套try-block:
try {
throwCheckedException();
} catch (IOException e) {
Data data = createDataFromMessage(e.getMessage());
handle(data);
}
if (!someBoolean) {
Data data = createData();
handle(data);
}
添加回答
举报