再保系统Bug记录

再保系统Bug记录
1、未知异常
    Security Manage系统中新增功能时报“未知异常”,后来在本地测试看Log信息知道是“空指针异常”,然后定位到抛出异常的位置:
iFuncNo  =  iFuncNo  +   1 ;

然后单步调试,发现iFuncNo为Null,所以操作时会报空指针异常,这是iFuncNo的赋值语句:
            List list  =  functionDao.selectByParentId(functionVo.getParentId());
            
if  (list  !=   null   &&  list.size()  >   0 ) {
                Functiontb functb 
=  (Functiontb) list.get( 0 );
                iFuncNo 
=  functb.getFunctionNo();
从中可以看出,iFuncNo是一个Functiontb的属性,而且可能为空,如果不加判断直接用操作符对它进行操作,会报“空指针异常”。

iFuncNo用于菜单的排序,因为菜单是动态生成的,根据权限不同,看到的菜单也不同,而且应该可以根据客户的要求对菜单排序,所以增加了这个字段,但是由于这个字段是后来新增的,所以数据库中的某些记录该字段的值为空。在程序中先判断一下就可以了,如果为空,就置为0;
            List list  =  functionDao.selectByParentId(functionVo.getParentId());
            
if  (list  !=   null   &&  list.size()  >   0 ) {
                Functiontb functb 
=  (Functiontb) list.get( 0 );
                iFuncNo 
=  functb.getFunctionNo();
                
if  ( null   ==  iFuncNo) { //  如果資料庫中該欄位的值為null,則先置為0
                    iFuncNo  =   0 ;
                }
                iFuncNo 
=  iFuncNo  +   1 ;
            }
这样就OK了。

2、季帐单的团体险及意外险部分的数据在生成的PDF报表中看不到。

原因:手工输入数据时,弱体等级(标准体、次标准体)栏位不是必填的,也就是说值可以为空,但是我生成报表时是按照这两种弱体等级来生成报表的,所以没有在报表中。就好像一个公共厕所,上面写着“男”和“女”,这时候来了一个性别为“空”的人,我肯定不好让“他/她”进其中的任何一个地方了。

今天要客户确认一下怎么处理!

你可能感兴趣的:(再保系统Bug记录)