如何解决java的空指针异常
1个回答
展开全部
Throwable是所有错误或异常的超类,只有当对象是这个类的实例时才能通过Java虚拟机或者Java throw语句抛出。
当Java运行环境发出异常时,会寻找处理该异常的catch块,找到对应的catch块之后,将异常交给catch块捕获。
throwable的子类是exception和error,exception又分为IOException,NullPointerException等
空指针异常发生的原因:
调用方法的对象为null
根据控制台提示的位置,找到对应的异常位置。
例如:
List<String> books = Dao.getData();
int size = books.size();
第二行报空指针异常
那么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");
}
当Java运行环境发出异常时,会寻找处理该异常的catch块,找到对应的catch块之后,将异常交给catch块捕获。
throwable的子类是exception和error,exception又分为IOException,NullPointerException等
空指针异常发生的原因:
调用方法的对象为null
根据控制台提示的位置,找到对应的异常位置。
例如:
List<String> books = Dao.getData();
int size = books.size();
第二行报空指针异常
那么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");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询