今天不再满足于“try-catch捕获异常”,而是深入理解异常体系,还动手写了第一个自定义异常,解决“业务错误无法用系统异常表达”的问题。
- 关键收获:理清了 Checked Exception (编译时异常,如 IOException ,必须处理)和 Unchecked Exception (运行时异常,如 NullPointerException ,可选择性处理)的区别,避免了代码中“盲目try-catch”的问题。
- 实践案例:为“用户余额不足”的场景自定义了 InsufficientBalanceException ,继承自 Exception (属于编译时异常),在转账方法中主动抛出,调用处必须处理,强制提醒开发者关注业务异常。