快速业务通道

JBuilder2005实现重构之杂项重构 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
理,这种处理异常的方式称为“面向问题”的异常捕捉。我们拟将这段代码重构为以下的形式,如下所示:

代码清单 16 “面向问题”的异常捕捉

1. public void autoCatch() 2. { 3.  FileInputStream fis = null ; 4.  byte[] bArr = new byte[1024] ; 5.  try { 6.   //会抛出FileNotFoundException 7.   fis = new FileInputStream("D:\\1.txt") ; 8.   //会抛出IOException 9.   fis.read(bArr) ; 10.  } 11.  catch(FileNotFoundException ex) { 12.   System.out.println("D:\\1.txt文件不存在,请检查") ; 13.  } 14.  catch(IOException ex) { 15.   System.out.println("D:\\1.txt文件读写发生异常,异常信息为:" + 16.   ex.getMessage()) ; 17.  } 18.  finally { 19.   if(fis != null) { 20.    try { 21.     fis.close() ; 22.    } 23.   catch(IOException ex1) { 24.    System.out.println("关闭文件输入流的时候发生异常,异常信息为: 25.     " + ex1.getMessage()) ; 26.   } 27.  } 28. } 29. }

JBuilder2005实现重构之杂项重构(3)

时间:2010-03-20

你需要做的是删除掉原来的“面向编译”的异常捕捉代码(即第5行和第10~12行),选中第6~9行,按Ctrl+Shift+C,JBuilder自动分析这段代码,发现这段代码中共有引发两个异常,分别为每个异常生成两个捕捉块,代码如下:

代码清单 17 通过Ctrl+Shift+C自动添加异常捕捉代码块

1. public void autoCatch() 2. { 3.  FileInputStream fis = null ; 4.  byte[] bArr = new byte[1024] ; 5.  try { 6.   //会抛出FileNotFoundException 7.   fis = new FileInputStream("D:\\1.txt") ; 8.   //会抛出IOException 9.   fis.read(bArr) ; 10.  } 11.  catch(FileNotFoundException ex) { 12.  } 13.  catch(IOException ex) { 14.  } 15. }

然后,我们再手工添加上finally代码处理块,因为资源打开后,一般需要显示关闭,以便快速释放资源。调整的最后代码如代码清单 16所示。

实战经验:

虽然可以通过Ctrl+J以模板的方式快速录入try...catch代码块,但是笔者还是倾向于用Ctrl+Shift+C自动生成异常捕捉块,这样不但提高了代码编写的速度,还保证异常捕捉代码块的规范性:为所有可能的异常分别生成一个捕捉块,且将特殊的异常放在前面,一般性的异常则放在后面。

3、部署描述文件

如果你的工程中有一个Web模块,依据你所选用的Web技术可能会有多个不同的部署描述文件,你可以直接通过这些部署描述文件进行重构类名重构,如下面是一段Struts关于FormBean的部署描述信息:

代码清单 18 Struts有关formBean的部署描述文件

1. <struts-config> 2. <form-beans> 3. <form-bean name="untitled1ActionForm" type="myrefactor.Untitled1ActionForm" /> 4. </form-beans> 5. </struts-config>

在编译器中打开需要重构的部署描述文件,将光标移到<form-bean>标签的type属性值中,点击右键->Refactoring->Rename Class for “UntitleActionForm”,如下图所示:

JBuilder2005实现重构之杂项重构 - 编程入门网

图28 在部署描述文件中重构类名的对话框

在New name中键入UserActionForm,点击OK,JBuilder不但更改部署描述文件中的type属性值,还将该属性所对应的类名进行更名重构。

4、EJB

因为EJB设计器中知道一个EJB所有引用的类和接口,所以必须通过EJB设计器对EJB类进行更名。如果在编辑器或UML浏览器中对EJB文件进行重命名重构,你将看到以下的警告信息:

WARNING: You are refactoring an EJB file.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号