第七章:软件构造的健壮性
第二章:错误和异常的处理
问题一:Java中的错误和异常
java.lang.Throwable 包含:java.lang.Exception、java.lang.Error。
内部错误(Error):程序员通常无能为力,一旦发生,想办法让程序优雅的结束
异常(Exception):你自己程序导致的问题,可以捕获、可以处理
问题二:错误(Error)
分类:
- User input errors 用户输入错误
- Device errors 设备错误
- Physical limitations 物理限制
典型的错误:
问题三:异常的处理(既然Error我们无能为力,那就转向关注我们能处理的Exception)
1.异常:程序执行中的非正常事件,程序无法再按预想的流程执行。
2.异常处理:
- 将错误信息传递给上层调用者,并报告“案发现场”的信息。
- return之外的第二种退出途径
- 若找不到异常处理程序,整个系统完全退出
*例:对比使用异常处理和不使用异常处理
①不使用异常处理
②使用异常处理
3.异常的分类
- 运行时异常(Exceptions that derive from RuntimeException):由程序员处理不当造成
- 其他异常:由外部原因造成(是程序员无法完全控制的外在问题导致的)
问题四:Checked and unchecked exceptions(异常被谁check?——编译器、程序员)
1.Checked exception:编译器可帮助检查你的程序是否已抛出或处理了可能的异常