1:异常均为派生于Throwable类的一个实例.在下一层分解为Error和Exception,Exception又分为IOException和RuntimeException.
2:派生与RuntimeException的通常包括:("如果出现RuntimeException异常,那么就一定是你的问题!")
- 错误的类型转换
- 数据访问越界
- 访问空指针
3:不派生与RuntimeException的包括:
- 试图在文件尾部后面读取数据
- 试图打开一个不存在的文件
- 试图根据字符串查找相应class对象,而该对象不存在
4:Error和RuntimeException统称unchecked异常,其他为checked异常
5:一个方法必须声明所有可能抛出的checked异常,而unchecked异常要么不可控制(Error)要么就应该避免发生(important)
6:如果子类覆盖了父类中的一个方法,那么子类方法中的声明不能抛出比父类方法声明中更通用的异常
7:异常的抛出
- 找到一个合适的异常类
- 创建一个该类的对象
- 将对象抛出
7:捕获异常使用try/catch语句块
8:断言assert