1. 设计异常类型层次结构应该浅而宽
2. 注意使用finally块清理资源
3. 不要什么都捕捉
4.得体地从异常中恢复
5.发生不可恢复的异常时回滚部分完成的操作-维持状态
6.隐藏实现细节来维系契约