小小女菜鸟请大家帮忙,如何使这段代码变得整洁呢?

问题描述

好多的try{}catch(){}是代码看起来有些乱,怎么使代码变得整洁呢?@RequestMapping("/prpinsreport")publicvoidreceiveMsg(HttpServletRequestrequest,HttpServletResponseresponse){StringBufferreqXml=newStringBuffer();BufferedReaderreader=null;PrintWriterwriter=null;Stringline="";try{//1、获取请求报文try{reader=request.getReader();while((line=reader.readLine())!=null){reqXml.append(line);}}catch(IOExceptione){logger.error("获取请求报文失败:",e);}StringreqMsg=reqXml.toString();logger.debug("征信查询请求请求报文:"+reqMsg);InsReportReqBeaninsReportReqBean=newInsReportReqBean();try{insReportReqBean=(InsReportReqBean)genetor.xml2bean(reqMsg,InsReportReqBean.class);}catch(Exceptione){logger.error("转换报文失败",e);}//2、保存报文try{saveByFile(reqMsg,"req","InsReport");}catch(Exceptione){logger.error("保存征信查询的请求报文失败",e);}//3、业务处理InsReportRtnBeaninsReportRtnBean=null;try{insReportRtnBean=insReportService.doService(insReportReqBean);}catch(Exceptione){logger.error("业务处理失败",e);}//4、组织返回报文StringrtnMsg="";//返回报文StringxmlHead="<?xmlversion='1.0'encoding='"+ChartSet+"'?>";rtnMsg=xmlHead+genetor.bean2xml(insReportRtnBean);try{writer=response.getWriter();writer.println(rtnMsg);writer.flush();}catch(IOExceptione){logger.error("发送响应报文失败",e);}//5、保存响应报文try{saveByFile(rtnMsg,"rtn","InsReport");}catch(Exceptione){logger.error("保存征信查询的响应报文失败",e);}}catch(Exceptione){logger.error("业务处理异常",e);}finally{try{if(reader!=null){reader.close();}}catch(IOExceptione){logger.error("关闭连接异常:",e);}if(writer!=null){writer.close();}}}

解决方案

解决方案二:
合并成一个try-catchblock
解决方案三:
不怎么乱啊,看起来是每一个步骤都进行异常处理
解决方案四:
不乱,每一个try-catch的操作不一样,出现异常写日志的信息不一样,所以分开来写很好,合并了反而不好了。
解决方案五:
楼上两位版主看到女的来得真快啊!把你的代码整成这样就行了try{...//这里是你所有的代码}catch(xxExceptione){}catch(xxExceptione1){}catch(xxExceptione2){}finally{}
解决方案六:
感觉还好不怎么乱不然就一个try然后就是catchcatchcatch...
解决方案七:
习惯了就好了,JAVA就是这样的,代码有时候看起来会很臃肿不堪
解决方案八:
代码自己能看懂就行
解决方案九:
还小小女?问个问题还的带上性别?你以为是玩网游呢
解决方案十:
个人理解try-catch的使用原则是:在主逻辑处,可以按4L那样,一个try多个catch;在收尾处,比如要关闭资源了,最好每关一个资源,使用独立的try-catch,这样前面的资源关闭失败,不会影响后面的资源关闭。
解决方案十一:
还是可以的,很好理解!
解决方案十二:
引用4楼duanwu2330323的回复:

楼上两位版主看到女的来得真快啊!把你的代码整成这样就行了try{...//这里是你所有的代码}catch(xxExceptione){}catch(xxExceptione1){}catch(xxExceptione2){}finally{}

就这个!!!!!!!!!!!!!
解决方案十三:
不如把每个单独的方法里面返回异常时设置特定的异常信息在主方法内捕获后抛出e.getMessage()
解决方案十四:
引用12楼tian168no的回复:

不如把每个单独的方法里面返回异常时设置特定的异常信息在主方法内捕获后抛出e.getMessage()

这样子就不用去加那么多try{}catch(){}了
解决方案十五:
引用3楼jackwumengfeng的回复:

不乱,每一个try-catch的操作不一样,出现异常写日志的信息不一样,所以分开来写很好,合并了反而不好了。

就他这样写啊不过注意优先级别
解决方案:引用4楼duanwu2330323的回复:

楼上两位版主看到女的来得真快啊!把你的代码整成这样就行了try{...//这里是你所有的代码}catch(xxExceptione){}catch(xxExceptione1){}catch(xxExceptione2){}finally{}

就他这样写啊不过注意Exception的优先级别
解决方案:引用楼主u013116585的回复:

好多的try{}catch(){}是代码看起来有些乱,怎么使代码变得整洁呢?@RequestMapping("/prpinsreport")publicvoidreceiveMsg(HttpServletRequestrequest,HttpServletResponseresponse){StringBufferreqXml=newStringBuffer();BufferedReaderreader=null;PrintWriterwriter=null;Stringline="";try{//1、获取请求报文try{reader=request.getReader();while((line=reader.readLine())!=null){reqXml.append(line);}}catch(IOExceptione){logger.error("获取请求报文失败:",e);}StringreqMsg=reqXml.toString();logger.debug("征信查询请求请求报文:"+reqMsg);InsReportReqBeaninsReportReqBean=newInsReportReqBean();try{insReportReqBean=(InsReportReqBean)genetor.xml2bean(reqMsg,InsReportReqBean.class);}catch(Exceptione){logger.error("转换报文失败",e);}//2、保存报文try{saveByFile(reqMsg,"req","InsReport");}catch(Exceptione){logger.error("保存征信查询的请求报文失败",e);}//3、业务处理InsReportRtnBeaninsReportRtnBean=null;try{insReportRtnBean=insReportService.doService(insReportReqBean);}catch(Exceptione){logger.error("业务处理失败",e);}//4、组织返回报文StringrtnMsg="";//返回报文StringxmlHead="<?xmlversion='1.0'encoding='"+ChartSet+"'?>";rtnMsg=xmlHead+genetor.bean2xml(insReportRtnBean);try{writer=response.getWriter();writer.println(rtnMsg);writer.flush();}catch(IOExceptione){logger.error("发送响应报文失败",e);}//5、保存响应报文try{saveByFile(rtnMsg,"rtn","InsReport");}catch(Exceptione){logger.error("保存征信查询的响应报文失败",e);}}catch(Exceptione){logger.error("业务处理异常",e);}finally{try{if(reader!=null){reader.close();}}catch(IOExceptione){logger.error("关闭连接异常:",e);}if(writer!=null){writer.close();}}}

你这样写没什么意义啊所以的抛出异常都是Exception父类处理了
其他方案:
publicvoidreceiveMsg(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{......就不用trycatch了....}

也可以写个总的trycatch。主要是这些失败都是不正常的。要有一个理解。
解决方案:
解决方案:解决方案是把你的方法精简下能抽的抽出来···
解决方案:引用8楼u012463264的回复:

还小小女?问个问题还的带上性别?你以为是玩网游呢

貌似事实就是这样

时间: 2024-09-28 11:34:31

小小女菜鸟请大家帮忙,如何使这段代码变得整洁呢?的相关文章

js调试-菜鸟请高手帮忙看看两个JS文件为什么会冲突

问题描述 菜鸟请高手帮忙看看两个JS文件为什么会冲突 文件一: var ddsmoothmenu={ //Specify full URL to down and right arrow images (23 is padding-right added to top level LIs with drop downs): arrowimages: {down:['downarrowclass', 'images/down.gif', 10], right:['rightarrowclass',

java 方法传值问题:请大家帮忙看看指点指点:代码如下:

问题描述 java 方法传值问题:请大家帮忙看看指点指点:代码如下: package com.imooc; public class Test{ public static void main(String[] args) { Circle c1 = new Circle(1); Circle c2 = new Circle(2); swap1(c1,c2); System.out.println("After swap1:"+c1.radius+c2.radius); swap2(c

java后台逻辑问题-求大神帮忙解释下这段代码。

问题描述 求大神帮忙解释下这段代码. 这是一个从表添加页面的代码.currentx是当前页数.我想问下 st st1 st2 st3是什么意思,就是split(:):这个方法我不是很清楚什么意思,还有下面的!ss.equals("t") t是什么. 传参什么的我晓得. @RequestMapping("/addProcess.do") public String addProcessMaintenance(String currentx, String ids, S

算法-大家帮忙看看我这段代码逻辑是不是有问题?

问题描述 大家帮忙看看我这段代码逻辑是不是有问题? #include "stdafx.h" #include "KNN.h" #include #include #include #include //设置K值 void KNN::setK() { // cout << "请输入K:"; // cin >> K; } //读入训练集数据,100组数据,108维,10类 bool KNN::ReadTraining(char

xmlentities-在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了?

问题描述 在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了? <?xml version="1.0" encoding="GB2312"?> <!DOCTYPE photos[ <!ELEMENT photos (photo*)> <!ELEMENT photo EMPTY> <!ATTLIST photo Sources ENTITIES #REQUIRED> <!ENTITY ic1 S

帮忙看下这段代码,为啥那个afafafa没有打印出来?

问题描述 帮忙看下这段代码,为啥那个afafafa没有打印出来? public class Demoe { public void f() { System.out.println("Throwing MyException from f()"); } public static void main(String[] args) { Demoe aa = null; try { aa.f(); throw new NullPointerException("afafafa&q

语言-新手求帮忙看下这段代码的数据溢出问题,没有C币理解下(我是在CodeBlock10.05下运行的)

问题描述 新手求帮忙看下这段代码的数据溢出问题,没有C币理解下(我是在CodeBlock10.05下运行的) #include #include #include unsigned int Ex_secret[30]={11,4,120,75,170,204,90,59,78,49,//用0~255的数表示8位2进制,一共240位 148,248,190,137,0,9,17,91,174,105,45,124,177,205,57,97,194,155,120,36}; unsigned in

redirect-求大神帮忙解释下面这段代码,尤其是问号后边的,谢谢啦

问题描述 求大神帮忙解释下面这段代码,尤其是问号后边的,谢谢啦 求大神帮忙解释下面这段代码,尤其是问号后边的,谢谢啦 <result type="redirect" name="success">/Module/QuZhengGuiZe/List.action?pageLink=${pager.pageLinkUrl}</result> 解决方案 返回结果为success url地址重定向( type="redirect"

在指定的时间段清除定时器,大家帮忙看一下这段代码有什么问题?

问题描述 在指定的时间段清除定时器,大家帮忙看一下这段代码有什么问题? <script type='text/javascript'> var date_time = new Date(); var current_time = date_time.getHours() + ":" + date_time.getMinutes() + ":" + date_time.getSeconds(); if (current_time >= '7:20:0