错误异常处理总结

错误异常处理总结

每个程序员在开发项目的过程中都会碰到或多或少的错误异常,我在这里会记录一些常碰到的异常和处理方法,每碰到一个都会到这里来更新一下,希望大家也能帮我解决一下问题,小弟在此先谢过了。

java常见的错误异常:

1、java.lang.NullPointerException
错误原因:很明显是由于空值造成的。问题出现于很多方面,唯有具体情况具体分析了。
解决方法:细心分析,多判断传的参数据是否为空;

2、java.lang.NumberFormatException
错误原因:由于为空或不能转化为数值类型时引起的异常。
解决方法:转换前判断是否为空,能否转成数值类型。

2、java.lang.NoClassDefFoundError
错误原因:通常这个异常是由于没有找到相应的jar包而引起的,因为有时候IDE并没有把你的jar包引入,虽然你明明在项目里配置了这个包,但你的lib里却是没有的。
解决方法:将相应的包复制到lib里去。

Struts,Hibernate,Spring中常见的异常:

1、java.io.FileNotFoundException: Could not open class path resource [user.hbm.xml]

错误原因:没有找到hibernate mapping resource的映射文件,该xml文件没有在classpath中,这里的hbm.xml文件名和路径一定要注意大小写,不然就会出现这个错误。还有在用JB开发时,resource里的xml文件要勾copy,这样编译的时候才会把xml文件copy到classpath里去。
解决方法:把对应的xml文件copy到classpath相应的目录。

2、org.springframework.beans.NotWritablePropertyException: Invalid property 'userDao' of bean class
错误原因:是在spring-config.xml中property name的错误。
<property name="...."> 中name的名字是与bean的set方法相关的,而且要注意大小写。
例:
在spring-config.xml里配置了一个bean
  <bean id="mySystemManagerFacadeTarget" class="com.site.system.domain.impl.SystemManagerImpl">
  <property name="userDao">
   <ref bean="myUserDao"/>
  </property>
  <property name="roleDao">
   <ref bean="myRoleDao"/>
  </property>
  </bean>
则SystemManagerImpl里就必须要有对应的set方法
  private UserDao userDao;

  private RoleDao roleDao;

  /**
   * set the value of dao
   */
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
  public void setRoleDao(RoleDao roleDao){
    this.roleDao = roleDao;
  }

解决方法:细心分析整个流程,

3、CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
错误原因:把有hibernate3的项目部署到WebLogic里,WebLogic里已经有一个antlr.jar的版本了,导致Hibernate里的antlj.jar不能找到。(网上获知)
解决方法:
( 1 ) 在hibernate.properties上,或是在spring的conext xml中,加上一个
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>(不推荐,原因请看我这里的Hibernate2.1升级到Hibernate3.0 )
( 2 ) 将antlr-2.7.5H3.jar这个包加入到weblogic里,注意要加在开头。(推荐) 

4、java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException

错误原因:weblogic8.X版本里用到JSTL1.1的项目,weblogic8.X不支持JSP2.0,因为jsp2.0中已经把ELException类包括进去了,而weblogic8.X里的是JSP1.2,JSTL1.1里也并没有这个包。
解决方法:
( 1 ) 下载jstl1.0,然后修改web.xml
  这样一来换引起了一个附带问题:jstl1.0中没有fn:这个taglib,所有用到fn:的地方必须用jsp来重写。
( 2 ) 改用支持JSP2.0的服务器,tomcat5或weblogic9

你可能感兴趣的:(错误异常处理总结)