首先根据Oracle官方文档总结一下:
异常分为三种:
- 受检异常(checked exception):写代码时应该预料并可以恢复的异常.
- 运行时异常( runtime exception): 写代码时无法预料以及恢复的异常.
- 错误(error):写代码时无法预料以及恢复的异常.
然后分析一下:
- 预料(anticipate): 程序应该处理的情况, 但是很少出现(非主流程).
- 恢复(recover): 程序不需要退出, 可以继续运行.
- 运行异常是程序有BUG,可以修改代码修复.错误是运行环境有BUG, 无法通过修改代码修复.
总结:
- 受检异常时方法的一部分, 就像返回值以及参数列表一样, 客户端必须知道以及处理, 属于正常流程中的一些很少出现的情况.
- 运行时异常属于BUG, 客户端破坏了方法的前置条件, 不属于正常流程的一部分, 开发者无需处理.