代码错误处理与边界管理的最佳实践
1. 错误处理
1.1 特殊情况模式
可以通过改变 ExpenseReportDAO 使其总是返回一个 MealExpense 对象。若没有餐费,就返回一个将每日津贴作为总额的 MealExpense 对象,示例代码如下:
public class PerDiemMealExpenses implements MealExpenses {
public int getTotal() {
// return the per diem default
}
}
这就是特殊情况模式,创建一个类或配置一个对象来处理特殊情况,客户端代码就无需处理异常行为,该行为被封装在特殊情况对象中。
1.2 避免返回 null
返回 null 会带来诸多问题,例如以下代码:
public void registerItem(Item item) {
if (item != null) {
ItemRegistry registry = peristentStore.getItemRegistry();
if (registry != null) {
Item existing = registry.getItem(item.getID());
if (existing.getBillingPeriod().
订阅专栏 解锁全文
359



被折叠的 条评论
为什么被折叠?



