异常
分类
Throwable → Error(通常不可恢复,不应捕获)与 Exception。RuntimeException 及其子类多为 unchecked;其余 checked 异常须在方法签名声明或内部捕获处理。
try-with-resources
实现 AutoCloseable 的资源在块结束时按关闭顺序逆序关闭,抑制关闭异常与主异常的关联见 Throwable.addSuppressed。
设计原则
- 可恢复条件用 checked 或结果类型表达;编程错误倾向 unchecked。
- 勿空捕获;日志应带上下文,避免吞掉栈信息。
Optional
表示「可能缺失」的容器,不应用作字段、集合元素或序列化 DTO 默认值滥用;API 返回 Optional 在公共库中有争议,团队内统一风格即可。
与并发
InterruptedException:捕获后应恢复中断状态 Thread.currentThread().interrupt() 或向上传播,勿静默吞掉。