常见Exception和调bug的习惯

1、开发排除异常的好习惯:

debug模式:a、设置断点 b、F6运行 c、F5可进入对应方法查看具体运行。

 

2、Exception:ORA-01401: inserted value too large for column

字段设置的长度不够,在oracle中可执行下列语句修改字段长度:

 oracle中:alter table t_dslam  modify (factoryedition varchar2(128));

sqlserver中:alter table t_dslam  alter factoryedition  varchar2(128);

  

 

3、java.lang.reflect.InvocationTargetException

Caused by: java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V

这个Error一般就是HQL的语法问题,仔细检查报错的地方是否存在HQL的语法错误,例如:不支持子查询,不支持select count(count(*))等。或者是瓶装后的HQL存在语法问题。

 

 4、org.xml.sax.SAXParseException: Reference is not allowed in prolog当解析xml时,会出现该异常。

 

原因是因为xml文件格式不正确,检查xml文件是否有不合法字符。

 

5、java.lang.IncompatibleClassChangeError: Found class org.snmp4j.smi.Variable, but interface was expected

 

   今天在调试公司以前的一套SNMP采集的代码,由于之前的采集代码被打成包并且做了混淆,最郁闷的是连SNMP4J的jar包也做了混淆,而且无论是现网lib包中还是本地的lib中的SNMP4J的jar包都没有版本号,所以报上面的这个错。

   郁闷了一下午,今早上班自己读了下这个Exception,发现英语是多么的重要,其实他的意思是:不相容的的类,找到了一个Variable类,但是我们代码中预期的是要一个Variable的接口,所以应该是当前的SNMP4J的jar包中Variable是一个类而并非一个接口,打开SNMP的API查看了下,发现Variable是一个接口的版本从1.8版本开始。所以新找了个SNMP4J的jar包,重新测试,解决了问题。

 

 

 

 

 

 

 

 

你可能感兴趣的:(exception,异常,常见问题)