如何看异常信息

来源:互联网 发布:网口转串口软件 编辑:程序博客网 时间:2024/04/30 00:46
37:  %>38: 39: <%40: List<Category> categories = CategoryService.getInstance().getCategories();41: List<Category> topCategories = getTopCategories(categories);42:  %>43: <html>Stacktrace:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)com.bjsxt.shopping.util.filter.IPFilter.doFilter(IPFilter.java:31)root cause java.lang.NullPointerExceptioncom.bjsxt.shopping.category.CategoryService.getCategories(CategoryService.java:102)org.apache.jsp.Index_jsp._jspService(Index_jsp.java:95)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)com.bjsxt.shopping.util.filter.IPFilter.doFilter(IPFilter.java:31)

如何改呢?

教你怎么看异常信息。你给出的信息里不是有一拖吗,先看Stacktrace部分org.apache开头的,明显不是你的代码。apache的一个jar包。不用管。它报错是因为你传给它的值不是它想要的。javax.servlet.http.HttpServlet.service这个也不是你的代码。com.bjsxt.shopping.util.filter.IPFilter.doFilter这个相对来说可能就跟你的关系最经了。这应该是属于你们老师给的代码里的一部分。接下来找错。root cause 中的信息。先找com.bjsxt开头的。为什么,因为com.bjsxt离你最近OK。你看到了两行最近的。我也看到两行:com.bjsxt.shopping.category.CategoryService.getCategories(CategoryService.java:102)com.bjsxt.shopping.util.filter.IPFilter.doFilter(IPFilter.java:31)来。提示信息时NullPointerException;最熟悉的空指针。从这两行中选。然后看你问题题目中提到的:org.apache.jasper.JasperException: An exception occurred processing JSP page /Index.jsp at line 40注意,这个是最直观的信息  at line 40好你又找到了line 40,是:40: List<Category> categories = CategoryService.getInstance().getCategories();看。跟我们之前揪出来的两行中的一行:com.bjsxt.shopping.category.CategoryService.getCategories(CategoryService.java:102)是不是关系最近对吧。这个时候,你就可以很肯定的告诉自己告诉别人:是你com.bjsxt.shopping.category包下的CategoryService类的 getCategories方法在你的第40行执行后,返回的结果是null,null当然就报nullpointException了。你还可以看到com.bjsxt.shopping.category.CategoryService.getCategories(CategoryService.java:102)后面括号里的信息。那是提示你在执行getCategories方法时,代码运行到102行出的错。大功告成。讲的比你们老师将得还细。呵呵。开个玩笑。
怎么改呢?

...汗。你想取的值结果却是空。看看你的方法传入的值是什么啊,为什么是空啊。要不你再把你CategoryService.getCategories()方法的代码贴出来。最好能把CategoryDao这个类的代码也弄出来。Category类的代码也贴出来。空指针,你想,要么是数据库每数据。要么是有数据,但是取值时算错了。每什么太复杂的东西。鼓励你自己检查出来。还有个要注意的地方。你CategoryService.getInstance()方法也检查下,看看是不是这个方法返回值有问题。建议这种代码都分开写:XXX  categoryService =  CategoryService.getInstance();List<Category> categories = categoryService.getCategories();这样你就能一目了然的知道,是getInstance()方法返回空还是getCategories()返回空。把每出的返回值都System.out.println()出来。一步一步找过去。
——来源百度知道

0 0
原创粉丝点击