`
black_angle
  • 浏览: 49579 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

J2EE项目异常处理

阅读更多

 

 
在表示层,主要是把页面传过来的值进行校验并转换成业务层需要的类型 ,而且调用业务层的方法,在表示层一定要弄清楚调用方法的是否会抛出unChecked异常,什么情况下会抛出这些异常,并作出正确的处理。
《一》
在异常处理方面主要做的工作是:
1:捕捉业务层抛出来的check异常,如在登录时的用户不存在异常,处理并跳转到相应的页面
2:处理表示层内部的一些Uncheck异常,如类型转换错误等,并跳转到相应的页面,比如生日中出现字母
3:处理全局异常,并且转发到 “系统错误”的页面,即所有异常的父类Exception
在业务层,主要进行业务活动,在异常方面做要做的工作是:
1:抛出用户自定义的流程异常,在表示层可以处理的异常(逻辑处理异常),比如在登录用户时,用户不存在的异常。对于流程异常交给调用者来处理,自己不处理。
2:对于其他异常,或底层抛出来的Uncheck异常,重新包装成uncheck异常,以BussinessException抛出。
在数据库层,主要惊醒数据库的相关操作,在异常方面主要做的工作是:
 1:避免系统级的checked异常对业务系统的深度侵入,把底层抛出的不可恢复的异常,如SQLException,包装成DataAccessException(uncheck Exception)抛出,并释放相关资源,、
2:如果一个异常是可以恢复的,可以被调用者正确处理的,使用checked异常
《二》
异常记录:
1:如果捕获到一个异常,但是这个异常是可以处理的。则无需要记录异常
2:异常应该在最初产生的位置记录!
《三》
异常类的写法:我们在调用printStackTrace方法时,需要把所有的“起因异常”的信息也同时打印出来。所以我们需要覆写printStackTrace方法来显示全部的异常栈跟踪。包括嵌套异常的栈跟踪。
一个完整的支持嵌套的checked异常类源码如下。我们在这里暂且把它叫做NestedException。同样要设计一个unChecked异常类也与上面一样。只是需要继承RuntimeException。
  1. public NestedException extends Exception{   
  2. private Throwable cause;   
  3. public NestedException (String msg){   
  4.  super(msg);   
  5. }   
  6.     
  7. public NestedException(String msg, Throwable ex){   
  8.  super(msg);   
  9.  This.cause = ex;   
  10. }   
  11.     
  12. public Throwable getCause(){   
  13.  return (this.cause == null ? this :this.cause);   
  14. }   
  15.     
  16. public getMessage(){   
  17.  String message = super.getMessage();   
  18.  Throwable cause = getCause();   
  19.    if(cause != null){   
  20.      message = message + “;nested Exception is ” + cause;   
  21.    }   
  22.  return message;   
  23. }   
  24. public void printStackTrace(PrintStream ps){   
  25.  if(getCause == null){   
  26.     super.printStackTrace(ps);   
  27.        
  28.  }else{   
  29.  ps.println(this);   
  30.  getCause().printStackTrace(ps);   
  31.  }   
  32. }   
  33.     
  34. public void printStackTrace(PrintWrite pw){   
  35.  if(getCause() == null){   
  36.     super.printStackTrace(pw);   
  37.  }   
  38.  else{   
  39.     pw.println(this);   
  40.     getCause().printStackTrace(pw);   
  41.  }   
  42. }   
  43. public void printStackTrace(){   
  44.  printStackTrace(System.error);   
  45. }   
  46. }  
同样要设计一个unChecked异常类也与上面一样。只是需要继承RuntimeException。 
总之:使用Checked Exception还是UnChecked Exception的原则,我的看法是根据需求而定。

如果你希望强制你的类调用者来处理异常,那么就用Checked Exception
如果你不希望强制你的类调用者来处理异常,就用UnChecked
参考:
 
 
分享到:
评论

相关推荐

    J2EE项目异常处理的几种方案

    ### J2EE项目异常处理的几种方案:深入探讨与实践 在J2EE项目中,异常处理是一项至关重要的任务,它直接关系到系统的稳定性和用户体验。本文将详细解析几种常用的异常处理方案,尤其是针对Struts2框架下的异常管理...

    J2EE项目中统一异常处理源码

    在J2EE项目开发中,异常处理是一项至关重要的任务,它确保了系统的稳定性和用户体验。一个良好的异常处理机制能够提供详细的错误信息,帮助开发者快速定位问题,并且可以在生产环境中优雅地处理异常,防止用户看到...

    简单的j2ee项目

    1. **Java基础知识**:首先,理解J2EE项目需要扎实的Java语言基础,包括面向对象编程、异常处理、集合框架等。 2. **Servlet**:Servlet是Java中用于处理HTTP请求的核心组件,它们在服务器端运行,接收并响应来自...

    J2EE项目源码(企业内部源码)

    《J2EE项目源码(企业内部源码)》提供了深入了解J2EE应用程序开发的宝贵机会,特别是对于那些想要深入研究Spring、Struts、Hibernate和JSP等核心技术的开发者而言。这个源码集合是一个实际项目的代码实现,可以作为...

    J2EE项目实训——Struts框架技术.rar

    7. **异常处理**:Struts框架提供了全局的异常处理机制,可以定义一个或多个错误页面,用于捕获并处理应用程序中抛出的异常。 8. **拦截器(Interceptor)**:拦截器是Struts2引入的重要特性,它们是实现了特定接口...

    J2EE项目开发Excel导出

    - 异常处理:确保代码包含适当的错误处理,以应对数据问题或文件操作失败。 - 版本兼容性:确保使用的Apache POI版本与目标Excel文件格式兼容。 综上所述,J2EE项目开发中的Excel导出涉及到Java编程、Apache POI...

    软件测试技术在J2EE项目中的应用

    在J2EE项目中,可以使用JUnit进行Java类的单元测试,它提供了断言、测试套件和异常处理等功能,便于开发者编写和运行测试用例。 2. **集成测试**:当单个组件通过单元测试后,需要验证它们之间的交互。JUnit和...

    J2EE项目代码编写规范.zip

    5. **异常处理**:在J2EE项目中,异常处理是关键部分。应定义统一的异常类,用于封装业务异常,并在可能抛出异常的地方进行捕获和处理,防止程序中断。 6. **事务管理**:在JPA或Hibernate等持久层框架中,事务管理...

    J2EE项目开发的平台、环境搭建、集成及工程的建立

    ### J2EE项目开发平台与环境搭建详解 #### 一、引言 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司提出的一种基于Java的大型企业级应用程序开发框架,它支持多层分布式应用,能够处理大量...

    J2EE专业项目实例开发(2)

    本书是学习J2EE编程的优秀参考书,主要包括以下内容:第一部分概述了有关J2EE编程的重要概念,如applet的创建、布局管理器和事件处理、异常处理和线程、存储数据和创建网络应用程序、RMI和CORBA;第二部分介绍J2EE的...

    《J2EE图书馆项目实例开发》源代码

    8. **异常处理**:良好的异常处理机制是任何项目的关键,本项目可能使用try-catch-finally结构和自定义异常来捕获和处理可能出现的问题。 9. **国际化与本地化**:大型项目通常需要支持多种语言,因此项目可能包含...

    J2EE项目代码编写规范

    《J2EE项目代码编写规范详解》 代码编写规范是软件开发中不可或缺的一部分,它旨在提升代码质量,增强代码可读性,降低维护成本,并帮助开发者形成良好的编程习惯。对于J2EE项目而言,规范化的代码编写尤为重要,...

    J2EE项目开发Excel导入导出操作组件源代码

    - **异常处理**:处理可能出现的文件读写异常,确保程序的健壮性。 - **配置和接口**:提供配置参数,如文件路径、列映射等,并定义对外的接口,使得其他模块可以方便地调用导入导出功能。 5. **说明文档**: ...

    J2EE项目案例源代码(强力推荐:运行稳定)

    这通常涉及到良好的异常处理、资源管理以及负载均衡策略。通过分析这些源代码,我们可以学习如何在实际开发中实现这些目标。 界面的精美则体现了用户体验设计的重要性。在J2EE项目中,通常结合HTML、CSS和...

    两个J2EE项目示例

    它们不仅展示了J2EE应用的基本架构,还可能涵盖了各种API的使用、异常处理、日志记录等方面,对于提升初学者的实战能力非常有帮助。在深入学习的过程中,不断实践和调试,将有助于初学者逐步成长为熟练的J2EE开发者...

    j2ee经典项目各技术经典处理

    这包括面向对象编程概念,如封装、继承和多态,以及异常处理、集合框架(如List、Set、Map)和IO流等核心内容。 2. **Servlet与JSP**:Servlet是J2EE服务器端编程的基础,用于接收和响应HTTP请求。JSP则是用于创建...

    JSP项目 J2EE项目、Java学习资料 练习的代码

    Java的学习资料涵盖了基础语法、类和对象、集合框架、异常处理、多线程、网络编程、I/O流等众多主题。对于初学者,理解基本的面向对象概念和JavaSE(Java Standard Edition)的核心API是入门的关键。随着经验的增长...

    J2EE项目-在线求助系统

    此外,项目可能还涉及权限管理、异常处理、国际化、缓存等高级特性。通过这个项目,开发者可以掌握如何在实际环境中运用J2EE技术栈,为后续的企业级项目开发打下坚实基础。对于初学者来说,这是一个很好的实践平台,...

    为J2EE定制一个用来处理错误的异常处理框架

    回顾一下上一个J2EE工程,是否遇到过类似错误没有记 入日志或者被多次记录的情况?是否只是因为在某处代码吃 掉了异常导致你花费无数次时间...这篇文章为你提供了在J2EE项目中通过使用错误处理框架使用一些策略的基础。

    J2ee项目sturts技术开发的

    8. **异常处理**:Struts框架提供了一种统一的异常处理机制,允许开发者定义全局的错误页面或者针对特定异常的处理策略。 9. ** strut2 框架**:随着技术的发展,Struts1逐渐被Struts2取代,Struts2在Struts1的基础...

Global site tag (gtag.js) - Google Analytics