当前位置:编程学习 > JAVA >>

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


好多的try{}catch(){}是代码看起来有些乱, 怎么使代码变得整洁呢?
@RequestMapping("/prpinsreport")
public void receiveMsg(HttpServletRequest request,
HttpServletResponse response) {
StringBuffer reqXml = new StringBuffer();
BufferedReader reader = null;
PrintWriter writer = null;
String line = "";
try {
// 1、 获取请求报文
try {
reader = request.getReader();
while ((line = reader.readLine()) != null) {
reqXml.append(line);
}
} catch (IOException e) {
logger.error("获取请求报文失败:", e);
}
String reqMsg = reqXml.toString();
logger.debug("征信查询请求请求报文:" + reqMsg);

InsReportReqBean insReportReqBean = new InsReportReqBean();
try {
insReportReqBean = (InsReportReqBean) genetor.xml2bean(reqMsg,
InsReportReqBean.class);
} catch (Exception e) {
logger.error("转换报文失败", e);
}
// 2、保存报文
try {
saveByFile(reqMsg, "req", "InsReport");
} catch (Exception e) {
logger.error("保存征信查询的请求报文失败", e);
}
// 3、业务处理

InsReportRtnBean insReportRtnBean = null;
try {
insReportRtnBean = insReportService.doService(insReportReqBean);
} catch (Exception e) {
logger.error("业务处理失败", e);
}

// 4、组织返回报文
String rtnMsg = "";// 返回报文
String xmlHead = "<?xml version='1.0' encoding='" + ChartSet
+ "'?>";
rtnMsg = xmlHead + genetor.bean2xml(insReportRtnBean);

try {
writer = response.getWriter();
writer.println(rtnMsg);
writer.flush();
} catch (IOException e) {
logger.error("发送响应报文失败", e);
}

// 5、保存响应报文
try {
saveByFile(rtnMsg, "rtn", "InsReport");
} catch (Exception e) {
logger.error("保存征信查询的响应报文失败", e);
}

} catch (Exception e) {
logger.error("业务处理异常", e);

} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
logger.error("关闭连接异常:", e);
}
if (writer != null) {
writer.close();
}
}
}
--------------------编程问答-------------------- 合并成一个try-catch block --------------------编程问答-------------------- 不怎么乱啊,看起来是每一个步骤都进行异常处理 --------------------编程问答-------------------- 不乱,每一个try-catch的操作不一样,出现异常写日志的信息不一样,所以分开来写很好,合并了反而不好了。 --------------------编程问答-------------------- 楼上两位版主看到女的来得真快啊!

把你的代码整成这样就行了
try{
   ...//这里是你所有的代码
}catch(xxException e){

}catch(xxException e1){

}catch(xxException e2){

}finally{

} --------------------编程问答-------------------- 感觉还好  不怎么乱
不然就 一个try 然后就是catch catch catch... --------------------编程问答-------------------- 习惯了就好了,JAVA就是这样的,代码有时候看起来会很臃肿不堪 --------------------编程问答-------------------- 代码自己能看懂就行 --------------------编程问答-------------------- 还小小女 ?问个问题还的带上性别 ? 你以为是玩网游呢  --------------------编程问答-------------------- 个人理解try-catch的使用原则是:在主逻辑处,可以按4L那样,一个try多个catch;在收尾处,比如要关闭资源了,最好每关一个资源,使用独立的try-catch,这样前面的资源关闭失败,不会影响后面的资源关闭。 --------------------编程问答-------------------- 还是可以的,很好理解! --------------------编程问答--------------------
引用 4 楼 duanwu2330323 的回复:
楼上两位版主看到女的来得真快啊!

把你的代码整成这样就行了
try{
   ...//这里是你所有的代码
}catch(xxException e){

}catch(xxException e1){

}catch(xxException e2){

}finally{

}

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

这样子就不用去加那么多try{}catch(){}了 --------------------编程问答--------------------
引用 3 楼 jackwumengfeng 的回复:
不乱,每一个try-catch的操作不一样,出现异常写日志的信息不一样,所以分开来写很好,合并了反而不好了。

就他这样写啊 不过注意优先级别 --------------------编程问答--------------------
引用 4 楼 duanwu2330323 的回复:
楼上两位版主看到女的来得真快啊!

把你的代码整成这样就行了
try{
   ...//这里是你所有的代码
}catch(xxException e){

}catch(xxException e1){

}catch(xxException e2){

}finally{

}


就他这样写啊 不过注意Exception的优先级别 --------------------编程问答--------------------
引用 楼主 u013116585 的回复:
好多的try{}catch(){}是代码看起来有些乱, 怎么使代码变得整洁呢?
@RequestMapping("/prpinsreport")
public void receiveMsg(HttpServletRequest request,
HttpServletResponse response) {
StringBuffer reqXml = new StringBuffer();
BufferedReader reader = null;
PrintWriter writer = null;
String line = "";
try {
// 1、 获取请求报文
try {
reader = request.getReader();
while ((line = reader.readLine()) != null) {
reqXml.append(line);
}
} catch (IOException e) {
logger.error("获取请求报文失败:", e);
}
String reqMsg = reqXml.toString();
logger.debug("征信查询请求请求报文:" + reqMsg);

InsReportReqBean insReportReqBean = new InsReportReqBean();
try {
insReportReqBean = (InsReportReqBean) genetor.xml2bean(reqMsg,
InsReportReqBean.class);
} catch (Exception e) {
logger.error("转换报文失败", e);
}
// 2、保存报文
try {
saveByFile(reqMsg, "req", "InsReport");
} catch (Exception e) {
logger.error("保存征信查询的请求报文失败", e);
}
// 3、业务处理

InsReportRtnBean insReportRtnBean = null;
try {
insReportRtnBean = insReportService.doService(insReportReqBean);
} catch (Exception e) {
logger.error("业务处理失败", e);
}

// 4、组织返回报文
String rtnMsg = "";// 返回报文
String xmlHead = "<?xml version='1.0' encoding='" + ChartSet
+ "'?>";
rtnMsg = xmlHead + genetor.bean2xml(insReportRtnBean);

try {
writer = response.getWriter();
writer.println(rtnMsg);
writer.flush();
} catch (IOException e) {
logger.error("发送响应报文失败", e);
}

// 5、保存响应报文
try {
saveByFile(rtnMsg, "rtn", "InsReport");
} catch (Exception e) {
logger.error("保存征信查询的响应报文失败", e);
}

} catch (Exception e) {
logger.error("业务处理异常", e);

} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
logger.error("关闭连接异常:", e);
}
if (writer != null) {
writer.close();
}
}
}

你这样写没什么意义啊 所以的抛出异常都是Exception父类处理了 --------------------编程问答-------------------- 怎么都不说这样写呢:

public void receiveMsg(HttpServletRequest request
, HttpServletResponse response) throws Exception {......就不用try catch了....}

也可以写个总的try catch。主要是这些失败都是不正常的。要有一个理解。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 解决方案是把你的方法精简下 能抽的抽出来···  --------------------编程问答--------------------
引用 8 楼 u012463264 的回复:
还小小女 ?问个问题还的带上性别 ? 你以为是玩网游呢 

貌似事实就是这样
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,