Throwable是全部错误或异常的超类,只有当对象是这个类的实例时才能经过Java虚拟机或者Java throw语句抛出。指针
当Java运行环境发出异常时,会寻找处理该异常的catch块,找到对应的catch块以后,将异常交给catch块捕获。对象
throwable的子类是exception和error,exception又分为IOException,NullPointerException等get
空指针异常发生的缘由:虚拟机
调用方法的对象为nullio
根据控制台提示的位置,找到对应的异常位置。List
例如:exception
List<String> books = Dao.getData();方法
int size = books.size();error
第二行报空指针异常异常
那么books对象为null,向上查找第一行中Dao.getData();
那么进一步查看Dao对象是否为空,若不为空,则继续向上查找,找出为null的对象
改进:
1.增长条件判断
List<String> books = Dao.getData();
if(books!=null){
int size = books.size();
}
2.捕获异常
List<String> books = Dao.getData();
try{
int size = books.size();
}catch(NullPointerException e){
e.printStackTrace();
System.out.printLn("size = 0");
}