Java空指针异常解决方法

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");

}

时间: 2024-11-06 07:36:57

Java空指针异常解决方法的相关文章

Myeclipse下JSP打开报空指针异常解决方法。

Myeclipse下JSP打开报空指针异常解决方法 一.运行JSP文件就出错 静态的JSP页面访问时候正常,只要是牵涉到数据库的页面就出错,出错见下图. 出现这种情况让我调试了一天,各种断点,各种改代码,改数据库连接等等都试过都没有解决…… 二.解决方法 不经意间运行的时候选择了安装的tomcat 运行,一下就出来了!!!!! 把之前的改动都恢复到原来出错的时候,发现也可以正常运行,我去,,,,,忙活了大半天原来代码没有问题. >>>>>>>>>>

jenkins构建java项目找不到命令mvn,java的解决方法

jenkins构建java项目时出现的报错情况: $ mvn clean install FATAL: command execution failed java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) at java.la

mysql 8.0 Druid连接时调用getServerCharset报空指针异常解决方法

类似错误信息如下: 16:52:01.163 [Druid-ConnectionPool-Create-1641320886] ERROR com.alibaba.druid.pool.DruidDataSource - create connection error, url: jdbc:mysql://localhost:3306/jf?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&

用eclipse 检索SVN 上 myEclipse 建的web项后,成java项目解决方法

在网上找了非常多,都无论用. 说添加.project 文件几个属性.但我发现里面都有,在我这里无论什么用. 最后还是自已搞成了! 首先在eclips上建一个新的java web 项目.拷贝新建的web项目下的  [.settings]目录以下全部的文件.到检索下来的java 项目里,把之前的全干掉! 这样一看就成了web 项目.但公布不了webRootj里面的东东 1,改动项目 文件夹下的>>>>.settings 文件夹下的     >>文件:.jsdtscope  

MyBatis笔记----报错:Exception in thread &quot;main&quot; org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法

报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ij34.model.UserMapper.selectarticle at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:230) at or

(转)jdbc 调用 sql server 的存储过程时“该语句没有返回结果集”的解决方法

本文转载自:http://hedyn.iteye.com/blog/856040 在JDBC中调用SQL Server中的存储过程时出现如下异常: com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171) at com.microsof

org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 解决方法

错误代码: [c-sharp] view plaincopy org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 at org.hibernate.dialect.TypeNames.get(TypeNames.java:79) at org.hibernate.dialect.TypeNames.get(TypeNames.java:104) at org.hibernate.dialect.Dialect.

hbase遇到问题及解决方法

hbase遇到问题及解决方法 1.zookeeper启动报错 错误日志 启动zookeeper报错信息如下: java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.

Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 1 ActionContext context = ActionContext.getContext(); 2 ServletContext servletContext = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT); //抛空指针异常