最近在用SSM技术栈,开发一个OA系统项目,其中就踩了很多坑,今天就是其中一个,让我细细道来
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) com.imooc.oa.global.EncodingFilter.doFilter(EncodingFilter.java:21) 代码提示位置:

查阅资料
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
原理如下
- 就是有个数组要取出0位置的值,程序发现那个位置也就是0位置那里并没有值,就会报这个错,也有人说是越界错误,也是可以理解的。数组越界了,那里当然也没有值可以给你取得的。也就是为空
- 在往数据库添加数据需要判断数据库中是否已有记录,判断的返回结果通常是List。在List为空的情况下,调用其方法需要格外注意,例如:调用get()则会报下标越界的异常。
增加代码的健壮性得到

- 之后就不会报错了
总结
- 在往数据库添加数据需要判断数据库中是否已有记录,判断的返回结果通常是List。在List为空的情况下,调用其方法需要格外注意,例如:调用get()则会报下标越界的异常。
- 当其他的数组,集合为空后也会出现报错