为什么我的代码执行时会走else里的logger

问题描述

以下是我的程序代码 为什么我走的if (tbYibanwupin != null)还会执行else中的logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 n");并且else中的String message = "添加的一般物品不能为空";messForm = successTabMessage.setMessageForm(0, message);这两句话没有走 /** * 根据从dataBus取得的非空一般物品对象,调用dao的doInsert方法来完成数据的插入工作<br> * 1.取出刑事案件的id及表名并将其存放于一般物品信息中的信息来源表名及信息来源id中<br> * 2.插入一般物品表,然后将其表名及ID存放于物品汇总表及刑事案件中然后插入汇总表及更新案件 * @param dataBus中的一般物品对象不能为空 * @return 操作的结果消息及操作的对象 */ public DataBus doInsert(DataBus dataBus) { if (dataBus == null) return null; //声明对象 XingShiAnJian xingShiAnJian = null; XingShiAnJian[] xingShiAnJians = null; WuPin wuPin = null; WuPin[] wuPins = null; TbYibanwupin tbYibanwupin = null; //一般物品 TbWphzb wphzb = null; //物品汇总 TbAjjbxx tbAjjbxx = null; //案件// XianYiRen[] xianYiRens=null;// XianYiRen xianYiRen=null;// TbXyr tbXyr=null; try { //取出dataBus中的对象 int len = 0; if(dataBus.getPojos()!=null) { len = dataBus.getPojos().length; xingShiAnJians = new XingShiAnJian[len]; xingShiAnJians = (XingShiAnJian[]) dataBus.getPojos(); xingShiAnJian = xingShiAnJians[0]; } dao = new DAOBaseObject(); session = SessionControl.doGetSession(); //获得Session对象 dao.doSetSession(session); //赋予DAO对象Session tm = new TransActionManager(session); //创建事务管理对象 tm.beginTransaction(); if (xingShiAnJian != null) { //从大对象中取出其属性 int length = 0; tbAjjbxx = xingShiAnJian.getTbAjjbxx(); if(xingShiAnJian.getWupins()!=null) { wuPins = new WuPin[xingShiAnJian.getWupins().length]; wuPins = xingShiAnJian.getWupins(); wuPin = wuPins[0]; } if(wuPin!=null) { tbYibanwupin = wuPin.getYibanwupin(); wphzb = wuPin.getWphzb(); } } Long tbAjjbxxId = null; if(tbAjjbxx!=null) { tbAjjbxxId = tbAjjbxx.getAjjbxxid(); } //如果接刑事案件基本信息不为空则插入案件,否则不允许办理 if (tbAjjbxxId != null) { tbAjjbxx = (TbAjjbxx) dao.doGetPojo(tbAjjbxxId, tbAjjbxx.getClass()); if (tbAjjbxx != null) { String bid = tbAjjbxx.getBid(); if (bid == null || bid.equals("")) { String message = "案件编号为空,不能进行新增一般物品操作"; messForm = successTabMessage.setMessageForm(0, message); returnDataBus.setMessageForm(messForm); returnDataBus.setPojos(null); return returnDataBus; } Long tbYibanwupinId = null; if (tbYibanwupin != null) { //插入一般物品 tbYibanwupin.setXxlyajbm("AJJBXX"); //信息来源案件表名 tbYibanwupin.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID tbYibanwupin.setShanchubiaoji("0"); //将一般物品中的删除标记置为0表明为可删除 tbYibanwupin.setJilushijian(Calendar.getInstance().getTime()); //设置记录时间 tbYibanwupin.setDuxiekongzhi("w"); //将读写控制设为可写入 dataMap = dao.doInsert(tbYibanwupin); tbYibanwupinId = tbYibanwupin.getYibanwupinid(); //取出一般物品ID if(wphzb==null) wphzb=new TbWphzb(); wphzb.setShanchubiaoji("0"); wphzb.setDuxiekongzhi("w"); wphzb.setJingshishijian(Calendar.getInstance().getTime()); //物品表名及ID wphzb.setWupinbiaoming("YIBANWUPIN"); wphzb.setWpbmslbh(tbYibanwupinId.toString()); //案件表明及ID wphzb.setXxlyajbm("AJJBXX"); //信息来源案件表名 wphzb.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID //信息来源业务表名 wphzb.setXxlyywbm("AJJBXX"); wphzb.setXxlyywid(tbAjjbxxId.toString()); //物品名称 wphzb.setWupinmingcheng(tbYibanwupin.getMingcheng()); //物品类型 wphzb.setWupinleixing("一般物品"); //物品数量 wphzb.setWupinshuliang(tbYibanwupin.getShuliang()); //物品价值 wphzb.setWupinjiazhi(tbYibanwupin.getJiazhi()); dataMap = dao.doInsert(wphzb); Long wphzbId = wphzb.getWphzbid(); //更新一般物品 tbYibanwupin.setXxlyywbm("WPHZB"); tbYibanwupin.setXxlyywid(wphzbId.toString()); dataMap = dao.doUpdate(tbYibanwupin); tm.commit();/* //案件与物品相关联 if(tbAjjbxx.getAjqtxxslbh()!=null&&!tbAjjbxx.getAjqtxxslbh().equals("")) { String ajqtxxslbh = tbAjjbxx.getAjqtxxslbh(); ajqtxxslbh = ajqtxxslbh + "#" + wphzbId.toString(); tbAjjbxx.setSaryxxslbh(ajqtxxslbh); } else { tbAjjbxx.setAjqtxxbm("WPHZB"); tbAjjbxx.setAjqtxxslbh(wphzbId.toString()); } dataMap = dao.doUpdate(tbAjjbxx);*/ //封装为一个大对象 xingShiAnJian = new XingShiAnJian(); xingShiAnJians=new XingShiAnJian[1]; xingShiAnJian.setJiebaojing(null); xingShiAnJian.setTbAjjbxx(tbAjjbxx); wuPin=new WuPin(); wuPin.setYibanwupin(tbYibanwupin); wuPin.setWphzb(wphzb); //封装一般物品 wuPins=new WuPin[1]; wuPins[0]=wuPin; xingShiAnJian.setWupins(wuPins); xingShiAnJian.setXianyirens(null); xingShiAnJians[0] = xingShiAnJian; returnDataBus.setPojos(xingShiAnJians); messForm = successTabMessage.setMessageForm(dataMap); } else { String message = "添加的一般物品不能为空"; messForm = successTabMessage.setMessageForm(0, message); logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 n"); } } else { String message = "案件不存在,不能进行新增一般物品操作"; messForm = successTabMessage.setMessageForm(0, message); logger.debug("error in " + className + "doInsert()刑事案件不能为空 ;n"); } } } catch(Exception ex) { tm.rollback(); String message = "操作失败"; int code = 0; messForm = successTabMessage.setMessageForm(code, message); } finally { SessionControl.doCloseSession(); returnDataBus.setMessageForm(messForm); return returnDataBus; }}为什么我走的if (tbYibanwupin != null)还会执行else中的logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 n");并且else中的String message = "添加的一般物品不能为空";messForm = successTabMessage.setMessageForm(0, message);这两句话没有走是不是我的代码写的不规范,另请高手帮我规范一下代码的写法 谢谢了 问题补充:anyasir 写道

解决方案

if(){}else{}只要没有出现既进了if 又进了else 就说明是你的条件问题了如果都进了,那就 大条了至于规范,完全可以看jdk源码的风格
解决方案二:
设置下断点,debug看下就知道了

时间: 2024-11-03 08:55:53

为什么我的代码执行时会走else里的logger的相关文章

java里面的out.print(&amp;amp;#39;html代码&amp;amp;#39;) 怎么让html代码执行呢?

问题描述 java里面的out.print('html代码') 怎么让html代码执行呢? java里面的out.print('html代码') 怎么让html代码执行呢? 解决方案 没明白你的问题 是不是在html里加上 <%System.out.print("html代码")%> 解决方案二: out.print("<h1>"+aaa+"</h1>"); 解决方案三: 如果是ajax请求后台 后台返回htm

代码执行的效率

第一个例子 PHP中Getter和Setter的效率(来源reddit) 这个例子比较简单,你可以跳过. 考虑下面的PHP代码:我们可看到,使用Getter/Setter的方式,性能要比直接读写成员变量要差一倍以上. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <?php     //dog_naive.php       class dog {  

Office远程代码执行漏洞CVE-2017-8570 大部分版本受影响 PoC已经公开

Microsoft Office出现 远程代码执行漏洞 CVE-2017-8570,office 大部分版本受影响.绿盟科技发布安全威胁通告,通告内容如下: Office远程代码执行漏洞CVE-2017-8570 2017年7月,微软在例行的月度补丁中修复了多个Microsoft Office漏洞,其中的CVE-2017-8570漏洞为一个逻辑漏洞,利用方法简单.网上已经出现该漏洞的利用代码,影响范围较广. 该漏洞为Microsoft Office的一个远程代码执行漏洞.其成因是Microsof

JS 中AJAX回调函数success内的代码执行问题,有时执行,有时不执行

问题描述 在body中<asp:ButtonID="Button1"runat="server"Text="查询"OnClientClick="javascript:returnreport();"/>在<script>中functionreport(){Ext.Ajax.request({url:"/XFStatbyDay/XFStatbyDay",success:function

Samba远程代码执行漏洞(CVE-2017-7494)分析

概述 2017年5月24日Samba发布了4.6.4版本,中间修复了一个严重的远程代码执行漏洞,漏洞编号CVE-2017-7494,漏洞影响了Samba 3.5.0 和包括4.6.4/4.5.10/4.4.14中间的版本.360网络安全中心 和 360信息安全部的Gear Team第一时间对该漏洞进行了分析,确认属于严重漏洞,可以造成远程代码执行. 技术分析 如官方所描述,该漏洞只需要通过一个可写入的Samba用户权限就可以提权到samba所在服务器的root权限(samba默认是root用户执

ThinkPHP framework 任意代码执行漏洞预警

ThinkPHP是一个国内使用很广泛的老牌PHP MVC框架.貌似国内有不少创业公司或者项目都用了这个框架.  最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码.  可是貌似大多数开发者和使用者并没有注意到此漏洞的危害性,应者了了,更不用说有多少人去升级了.随后我对其进行了分析,发现此问题果然是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码.特此发帖预警各位.  我们来分析一下官方的补丁:  /trunk/Thi

ShopEx发布远程代码执行漏洞修复补丁

ShopEx发布单店版V4.7.1 KS47103修正了一个远程代码执行漏洞.收到漏洞报告后(SHOPEX远程代码执行漏洞),ShopEx技术人员快速反应,于30分钟内即完成了补丁的制作测试与发布工作. 该漏洞是由于早期的PHP一个不安全的全局变量注册机制引起的,虽然PHP在5年前就取消了该机制,但还是有某些服务器在配置时打开了该机制.因此这个漏洞只在一些对服务器未进行安全配置的小型及管理不规范主机商处才会发生. 虽然绝大多数ShopEx用户均不存在该漏洞,但还是请ShopEx用户即刻自行打上该

PHP代码执行漏洞参考资料总结

一 代码执行函数 PHP中可以执行代码的函数.如eval().assert().``.system().exec().shell_exec().passthru(). escapeshellcmd().pcntl_exec() 等 demo code 1.1: 二 文件包含代码注射 文件包含函数在特定条件下的代码注射,如include().include_once(). require().require_once(). 当allow_url_include=On ,PHP Version>=5

在C#中用最简洁有效的代码执行存储过程并返回数据

存储过程|数据|执行 存储过程 p_sys_Login 定义如下: CREATE PROCEDURE p_sys_Login @argUserID varchar(20), --用户名 @argPassword varchar(20), --密码 @argResult varchar(50) OUTPUT --登录结果 AS /* ... ... */ 下面演示如何在C#中用最简洁有效的代码执行该存储过程并返回数据: /// <summary> /// 用户登录验证 /// </summ