一种观点:
一、发生异常时,应该给用户一个明确的提示,告诉用户错误原因,应该如何操作。
从用户角度考虑,我把异常分为以下几种:
1、用户异常: 相当于业务异常,如用户输入密码错误,则throw new BussinessException("密码输入错误,请重试");
2、代码异常:如程序员疏忽,导致代码抛出NullException。这类异常对于用户来说,没办法作出回应。用户只能找管理员解决这个问题。所以这类异常可以定义为:"您的操作服务器无法响应,请联系管理员";
3、其他的可以为外界环境导致的异常,如数据库无法连接等,这类异常对于用户来说一样没办法。
二、异常框架的搭建提以下几点:
1、捕获底层异常,转为自定义的异常。如SQLException,由DAO捕获,并且抛出DaoException。这里的SQLException为底层异常
2、自定义异常一般继承RuntimeException,这样无需再接口上声明。
3、出现底层异常立即捕获,自定义异常让后台最上层代码处理。如web应用可以由action的基类或者filter统一处理异常,抛给用户。
4、业务异常可以命名的更有意义,如UserNotFoundException。我比较偷懒,一般直接抛出BussinessException
--------------------
你是如何处理捕获的异常的?
捕获了异常却不作任何处理,可以算得上Java编程中的杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C++程序的一个恶名远播的问题相提并论??不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九十九地肯定代码存在问题。
错误在于,异常总是意味着某些事情不对劲了,或者说至少发生了某些不寻常的事情,我们不应该对程序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace算不上"处理异常"。不错,调用printStackTrace对调试程序有帮助,但程序调试阶段结束之后,printStackTrace就不应再在异常处理模块中担负主要责任了。
那么,应该怎样改正呢?主要有四个选择:
1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。再次说明,调用printStackTrace算不上已经"处理好了异常"。
2、重新抛出异常。处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。
3、把该异常转换成另一种异常。大多数情况下,这是指把一个低级的异常转换成应用级的异常(其含义更容易被用户了解的异常)。
4、不要捕获异常。
分享到:
相关推荐
总的来说,有效的J2EE异常处理框架应具备以下特点: 1. 区分checked和unchecked异常,根据异常的性质选择适当的类型。 2. 使用前端控制器进行集中处理,减少业务逻辑中的异常处理代码。 3. 创建自定义的unchecked...
在J2EE项目开发中,异常处理是一项至关重要的任务,它确保了系统的稳定性和用户体验。一个良好的异常处理机制能够提供详细的错误信息,帮助开发者快速定位问题,并且可以在生产环境中优雅地处理异常,防止用户看到...
### J2EE项目异常处理的几种方案:深入探讨与实践 在J2EE项目中,异常处理是一项至关重要的任务,它直接关系到系统的稳定性和用户体验。本文将详细解析几种常用的异常处理方案,尤其是针对Struts2框架下的异常管理...
- **异常处理**:提供了BMP中异常处理的策略。 - **第六章:CMP的例子**: - **RosterApp应用概述**:概述了使用CMP(Container-Managed Persistence)实现的应用案例。 - **layerEJB代码分析**:详细分析了...
回顾一下上一个J2EE工程,是否遇到过类似错误没有记 入日志或者被多次记录的情况?是否只是因为在某处代码吃 掉了异常导致你花费无数次时间...这篇文章为你提供了在J2EE项目中通过使用错误处理框架使用一些策略的基础。
学习J2EE前,建议先掌握J2SE的基础知识,包括Java语言基础、面向对象编程、异常处理等。J2SE是J2EE的基础,熟悉其核心概念和技术,有助于更好地理解J2EE的高级特性。 #### 工具选择与环境搭建 IDE(Integrated ...
在J2EE应用程序中,异常处理是非常重要的。我们可以使用try、catch、finally代码段来处理异常。 五、JSP内置对象 JSP内置对象是JSP页面中可以直接访问的对象,包括request、response、session、application、out、...
1. **Struts2**:Struts2是一个强大的MVC框架,通过拦截器机制处理HTTP请求,提供了一系列的拦截器来实现如认证、授权、异常处理等功能。它的Action类负责接收并处理请求,然后返回结果到视图。Struts2还支持多种...
**J2EE编码规范详解** ...遵循这些编码和异常处理规范,能提高J2EE应用的代码质量和稳定性,降低维护成本,同时提升团队合作效率。在实际开发中,团队成员应共同遵守这些标准,以确保项目的整体质量。
通过对字符串处理、循环优化、对象管理、异常处理、变量使用、I/O操作、缓存策略以及Servlet处理等方面的细致调整,可以有效提升J2EE应用程序的性能。开发者应该根据具体的应用场景和需求,灵活运用这些优化技巧,以...
学习J2EE,首先需要掌握Java基础,包括面向对象编程概念、异常处理和集合框架。接着,深入理解Servlet和JSP的原理及应用,学会如何处理HTTP请求和响应。然后,学习EJB,特别是EJB 3.1版本,因为其简化了接口,降低了...
### J2EE中文乱码问题终极解决之道 在开发基于J2EE的应用系统时,中文乱码问题是开发者经常遇到的一个难题。本篇文章旨在提供一种全面、深入的解决方案,帮助开发者彻底解决这一问题。 #### 一、理解编码机制 在...
这个文件对于开发者来说非常宝贵,因为它提供了J2EE API的详细说明,包括类、接口、方法、异常等的描述,以及使用示例,有助于理解和使用J2EE的各种组件和技术。 在遇到打开时显示乱码的问题,通常是因为默认的字符...
以上知识点涵盖了Java面向对象编程基础、字符串处理、异常处理、Servlet和EJB等J2EE面试的常见问题。理解并掌握这些概念对于准备J2EE面试至关重要。在实际面试中,还可能涉及到JDBC、JMS、JSP、Spring框架、...
在J2EE 5.0的CHM文档中,开发者可以找到这些API的详细说明,包括类、接口、方法和异常等信息,这对于理解和使用这些技术至关重要。通过深入学习J2EE 5.0 API,开发者可以构建出高效、可扩展且易于维护的企业级应用。
在处理异常时,可以使用`try-catch-finally`语句块来捕获并处理异常。 JSP中的数组初始化和处理提交按钮的数字可以通过`request.getParameter()`获取请求参数,并通过`split()`方法拆分字符串。`Session`对象在J2EE...
其次,笔试题部分通常会考察你的基础理论知识,比如J2EE架构、MVC设计模式、Java语法、多线程处理、异常处理、数据库连接池等。理解J2EE的分层架构(如表现层、业务逻辑层、数据访问层)是必备的基础,同时熟悉...
1. **Java基础知识**:首先,理解J2EE项目需要扎实的Java语言基础,包括面向对象编程、异常处理、集合框架等。 2. **Servlet**:Servlet是Java中用于处理HTTP请求的核心组件,它们在服务器端运行,接收并响应来自...
### J2EE系统中日期时间的处理方法 #### 一、引言 在J2EE系统开发中,日期时间的处理是一项重要的任务。随着全球化的发展,越来越多的应用需要支持多时区的功能,使得原本看似简单的日期时间操作变得异常复杂。...