基于Struts异常处理的研究及应用

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:colala2001
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘要:异常通常是指程序运行过程中出现的非正常情况,由于通常代码中的错误是无法避免的,因此异常处理成为开发人员在程序开发中不得不考虑的重要问题。所幸的是Java为我们提供较好的异常处理机制。
   关键词:Struts;异常处理
   中图分类号:TP314 文献标识码:A文章编号:1007-9599 (2010) 11-0000-01
   The Research and Application of Exception Handling Based on Struts
   Tian Zaofu
   (School of Software Engineering,Tongji University,Shanghai201804,China)
   Abstract:Exception is running normally occur during non-normal conditions,due to an error code usually can not be avoided, so the exception handling developer have to consider in program development an important issue.Fortunately,Java provides us with a better exception handling mechanism.
   Keywords:Struts;Exception handling
   一、异常处理机制
   (一)Java的异常处理机制
   在Java程序方法的运行过程中,发生了异常,则这个方法生成代表该异常的一个对象,并把它交给Java运行时系统的过程称为抛出异常。当运行时系统收到抛出的异常对象后,运行时系统在方法的调用堆栈中查找到可以处理该异常的方法,并将该异常交给此方法处理。这个过程称为捕获异常。
   (二)Struts异常处理
   Struts框架在视图层和控制层提供了对异常处理的支持,拥有着较好的异常处理机制。Struts的控制器负责捕获各种异常,包括控制器运行中本身抛出的异常,以及调用模型的业务方法的异常。当异常被控制器捕获的时候,在异常处理代码块中,创建描述异常信息的ActionMessage对象,把它保存在ActionMessages或者它的子类ActionErrors对象中,然后把它保存在特定的范围内,比如request或session。接下来在视图层标签检索特定范围的ActionMessages对象,把本地化错误消息输出到页面上。这种异常处理机制可以避免用户看到原始的java异常信息,可以更友好的把错误信息展示给用户。Struts可以以两种不同方式来处理Action类中execute()方法产生的异常:编程式异常处理、声明式异常处理。
   二、个性化异常处理应用
   (一)自定义异常类
   建立自己的异常类MyException,需要继承自RuntimeException类。
   public class MyExceptionextends RuntimeException {
   /*异常的编码,对应与国际化资源文件中的key值*/
   private String key;
   private Object[] values;
   /*在构造方法key值对应资源文件中的key,第二个构造方法用于复合消息,其中第二个参数设置给复合消息的参数。*/
   public MyException(String key) {
   this. key = key;
   }
   public MyException (String key, Object[] values) {
   this.key=key;
   this.values = values;
   }
   public String getKey() {
   return key;
   }
   public void setKey(String key) {
   this.key=key;
   }
   public Object[] getValues() {
   return values;
   }
   public void setValues(Object[] values) {
   this.values=values;
   }
   }
   (二)创建异常处理类
   默认struts的异常是通过org.apache.struts.action. ExceptionHandler来处理的,如要根据自己抛出的MyException中的key来构造ActionMessage,就必须重写一个ExceptionHandler,从ExceptionHandler继承,并实现它的execute()方法。
   public class MyExceptionHandler extends ExceptionHandler {
   public ActionForward execute (…) {
   …
   if((ex instanceof MyException)) {
   MyExceptionmex=( MyException)ex;
   error = new ActionMessage(mex.getKey(), mex.getValues());//构建ActionMessage
   property = error.getKey();//取出key 值
   this.storeException(request, property, error, forward, scope);//存储异常
   …
   }
   }
   (三)配置exception
   在struts-config.xml中配置exception
  
   (四)配置资源文件
   在资源文件中配置异常消息的key值及对应的value值,就可以在前台展示页面通过key值读取到代码所对应的错误信息。
   loginerror=Login error, UserName={0}
   (五)异常调用
   Public void login(String username, String password){
   …
   If (!"admin".equals(username)||!”passwd”.equals(password)) {
   Throw new MyException();
   }
   …
   }
   (六)异常信息显示
   在path指定的页面中,可以通过来显示所有异常信息,或者通过来显示key值对应的异常信息。
   三、结语
   异常处理是Java语言的重要机制,是开发应用软件必不可少的部分,在struts新的版本中加入了对异常的处理,标志着作为一个整体的解决框架,struts越来越趋于成熟,充分利用struts 提供的异常处理框架,不仅可以节省大量的开发时间,而且能大大提高程序的健壮性、可移植性和可维护性。
  
其他文献
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
期刊
目的:对重组人组织型纤溶酶原激酶衍生物(瑞通立)治疗S-T段抬高型心肌梗死的疗效进行分析研究。方法:选择我院在2013年6月——2016年6月期间所收治的共48例急性S-T段抬高心肌
在目前竞争日益激烈的市场环境中,随着产品同质化趋势的加重,工程机械租赁企业需要尽快导入服务营销,建立服务导向的企业文化,树立顾客中心的服务理念,灵活运用服务营销的有
期刊
目的为了评估冠状动脉CT造影(CCTA)的可行性和图像质量(IQ),采用低对比剂注入率,管电压为70 kVp。探讨冠状动脉CTA检查采用注射低容量和低速度对比剂,研究其图像质量。方法 1
怎样解决“卖瓜难”问题rn近年来各地时有出现“卖瓜难”问题,这是瓜产区各级政府一直受困扰和十分关注的事,虽然各地都采取了一些相应措施,但是这个问题至今尚未得到根本解
期刊
今年第一季度,国际黄金和白银市场整体延续了自去年底以来的弱势,尤其是进入2月中下旬之后,金银价格的交投区间双双下移,白银更是在28-29.5美元的窄幅区间内持续震荡了一个月之久,而黄金在3月份期间的表现虽然略强于白银,但1600美元上方的抛压非常明显。对比黄金、白银以及其他主要资产年初至今的走势可以看到,今年以来主要资产的价格走势略显分化,除了美国股市、美元指数和原油实现了累计的正收益之外,黄金白
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊
患者男,62岁,因左侧肢体活动障碍20余天入院。无风湿热及心脏病病史。查体:P 65次/分,BP 12.7/8kPa,心尖部无抬举性搏动,无震颤,心界无扩大,心率94次/分,心律绝对不齐,心音