日期:2014-05-20  浏览次数:20760 次

高手请听题:异常提示中的路径a.b.Class与a/b/Class 有什么不同?
例如,

某个Exception   如下:
javax.servlet.ServletException:   a/b/c/SomeClass

另一个Exception如下:
java.lang.NullPointerException
at   a.b.c.SomeClass


这两个提示有什么不同?请各位朋友在理论上解释下!

分数不够可以再加!


------解决方案--------------------
两个异常完全不同
一个是ServletException,一个空指针异常
这个,我还是建议找本JSP,SERVLET的书读读
------解决方案--------------------
a/b/c/SomeClass 和 a.b.c.SomeClass 都是指在包a下面的包b下面的包c下面的SomeClass这个类(奶奶的,还真拗口)。
classloader去找class的时候会把a.b.c.SomeClass转换为a/b/c/SomeClass,然后就可以去找到这个实际文件。
所以如果知道了这些,你的问题就非常容易解决了。
1。a.b.c.SomeClass的错,首先恭喜你,classloader找到了a.b.c.SomeClass这个class,但是在执行这个class的某个方法的时候出错了,抛出了异常。
2。a/b/c/SomeClass的错,这个时候,估计是使这个class文件没有了,多半会伴随java.lang.NoClassDefFoundError这个异常,如果是在jsp里调用了这个类,但是这个类有不存在了,就会报这种异常,这个时候都是classloader要找你这个class文件,但是没有找到,产生的异常。

打字累啊,楼主看着给点吧,嘿嘿。