java 报错 ncapp_nc.vo.pubapp.pattern.exception.PubAppBusinessException异常的处理

一、说明

这是关于采购流程下推单业务的实现。在这个推单过程中将设置转换规则的代码写在审批BP中,点击审批后报错。控制台输出以下异常信息。

二、异常信息如下

14:20:04 [AWT-EventQueue-0] ERROR - 未知的错误  nc.vo.pubapp.pattern.exception.CarrierRuntimeException

at nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(ExceptionUtils.java:103)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.changeToBVO(AcePuocodeApproveBP.java:130)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.afterApprove(AcePuocodeApproveBP.java:52)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.approve(AcePuocodeApproveBP.java:41)

at nc.impl.pub.ace.AcePuocodePubServiceImpl.pubapprovebills(AcePuocodePubServiceImpl.java:113)

at nc.impl.pu.PuocodeMaintainImpl.approve(PuocodeMaintainImpl.java:51)

... ...

Caused by: nc.vo.pubapp.pattern.exception.PubAppBusinessException

at nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(ExceptionUtils.java:100)

... 96 more

14:20:04 [AWT-EventQueue-0] ERROR - null  nc.vo.pubapp.pattern.exception.PubAppBusinessException

at nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(ExceptionUtils.java:100)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.changeToBVO(AcePuocodeApproveBP.java:130)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.afterApprove(AcePuocodeApproveBP.java:52)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.approve(AcePuocodeApproveBP.java:41)

at nc.impl.pub.ace.AcePuocodePubServiceImpl.pubapprovebills(AcePuocodePubServiceImpl.java:113)

at nc.impl.pu.PuocodeMaintainImpl.approve(PuocodeMaintainImpl.java:51)

at sun.reflect.GeneratedMethodAccessor1459.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

......

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: nc.vo.pubapp.pattern.exception.CarrierRuntimeException

at nc.ui.uif2.NCAction.actionPerformed(NCAction.java:101)

at nc.funcnode.ui.action.ActionDelegate.actionPerformed(ActionDelegate.java:296)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

......

Caused by: nc.vo.pubapp.pattern.exception.CarrierRuntimeException

at nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(ExceptionUtils.java:103)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.changeToBVO(AcePuocodeApproveBP.java:130)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.afterApprove(AcePuocodeApproveBP.java:52)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.approve(AcePuocodeApproveBP.java:41)

at nc.impl.pub.ace.AcePuocodePubServiceImpl.pubapprovebills(AcePuocodePubServiceImpl.java:113)

at nc.impl.pu.PuocodeMaintainImpl.approve(PuocodeMaintainImpl.java:51)

at sun.reflect.GeneratedMethodAccessor1459.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

......

Caused by: nc.vo.pubapp.pattern.exception.PubAppBusinessException

at nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(ExceptionUtils.java:100)

... 142 more

三、问题处理

3.1 Cause By

首先看异常信息,Cause By后跟的说明是异常出现的直接原因。可以看看。这里的ExceptionUtils.wrappBusinessException(message);其中ExceptionUtils是异常工具处理类,wrappBusinessException()是工具标准的方法。是为了捕获异常将异常抛出。错误不可能出现在这个地方。问题还是要从自己代码入手,主要是自己修改过的代码需要注意

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.changeToBVO(AcePuocodeApproveBP.java:130)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.afterApprove(AcePuocodeApproveBP.java:52)

at nc.bs.pu.puocode.ace.bp.AcePuocodeApproveBP.approve(AcePuocodeApproveBP.java:41)

这个异常信息是:14:20:04 [AWT-EventQueue-0] ERROR - null ,可以看到应该是存在某个对象或变量数据是null导致的。

3.2 Debug

在这里我改动了AcePuocodeApproveBP.java中的代码,而异常显示和这几个方法有关。就是在41行调用了afterApprove(),然后52行调用了changeToBVO()方法,所以问题就是在130行。在此处打上断点。后Debug 运行项目,单击审批按钮触发代码执行到断点处,能执行到断点停下,至少说明前面执行的代码是没有错误的。

然后单步调试,F6代码执行直接跳转到其他类中指定行nc.vo.pu.m23.rule.ChkNumSignWhenSave.java的27行,boolean isBack = vo.getHVO().getBisback().booleanValue();

3.3 Inspect

跳转到的类中当前行的对象及变量我们可以通过开发工具查询其信息;

选中对象右键选择功能选项

跳转到的类中当前行的对象及变量我们可以通过开发工具查看其信息。选中对象右键选择功能选择inspect,查看对象信息,发现bisback赋值时null。回到AcePuocodeApprove.java中在方法changeToBVO()中初始化bisback即可。重新启动项目审批操作正常执行推单成功。

3.4 修改代码

private void changeToBVO(AggPoOrderVO aggPoOrderVO) {

List aggLists = new ArrayList();

List itemLists = new ArrayList();

PoOrderBVO[] bvos = (PoOrderBVO[]) aggPoOrderVO.getChildrenVO();//表体VO

ArriveVO arriveVO = new ArriveVO();//到货单聚合VO

ArriveHeaderVO arriveHeaderVO = new ArriveHeaderVO();//到货单表头VO

//获取自制采购订单的表头

PoOrderVO headPoOrderVO = aggPoOrderVO.getParentVO();

arriveHeaderVO.setBisback(UFBoolean.FALSE);

arriveHeaderVO.setApprover(headPoOrderVO.getApprover());......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值