`

J2ee的异常处理

    博客分类:
  • J2ee
阅读更多
一种观点:

一、发生异常时,应该给用户一个明确的提示,告诉用户错误原因,应该如何操作。

从用户角度考虑,我把异常分为以下几种:
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项目异常处理的几种方案

    J2EE项目异常处理的几种方案 内有代码

    论文研究-基于分层分类的J2EE应用系统异常处理方法.pdf

    随着J2EE应用系统业务逻辑日益复杂和规模不断扩大,传统的异常处理仅依赖Java异常处理机制,缺失层次性和分类性,存在异常处理散乱、扩展困难和异常日志混乱等问题。从J2EE应用系统架构的层次性着手,建立异常层次...

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

    J2EE项目中统一异常处理,14类异常的自定义分析,支持dao层异常原因的返回

    J2EE应用程序的异常处理框架

    本文将讨论如何让异常处理保持简单和直观,使开发人员可以专心于开发业务逻辑,而不是把时间浪费在编写异常处理的样板代码上。本文还将说明用于在J2EE环境中创建和处理异常的基础知识和指导原则,并提出了一些可以...

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

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

    基于分层分类的J2EE应用系统异常处理方法 (2015年)

    随着J2EE应用系统业务逻辑日益复杂和规模不断扩大,传统的异常处理仅依赖Java异常处理机制,缺失层次性和分类性,存在异常处理散乱、扩展困难和异常日志混乱等问题。从J2EE应用系统架构的层次性着手,建立异常层次...

    springmvc 异常统一处理的三种方式详解.docx

    那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面将介绍使用Spring MVC统一处理异常的解决和实现过程。

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

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

    J2EE指南(官方).pdf

    异常处理 第6章 CMP的例子 一、RosterApp应用概述 二、layerEJB代码分析 三、RosterApp配置说明 四、RosterApp中的方法调用 五、运行RosterApp应用程序 六、用deploytool工具部署CMP实现的实体Bean 七、CMP的主键 第...

    J2EE中文版指南 CHM格式 带全文检索

    异常处理 94 第6章 CMP的例子 96 一 RosterApp应用概述 97 二 layerEJB代码分析 97 实体Bean类 98 CMP和BMP实现实体Bean的代码比较 98 访问(get和set)方法 98 持久性字段的访问方法 99 关系字段的访问方法 99 ...

    J2EE使用指南

    异常处理 88 第6章 CMP的例子 89 一 RosterApp应用概述 90 二 layerEJB代码分析 90 三.RosterApp配置说明 95 四 RosterApp中的方法调用 102 五 运行RosterApp应用程序 109 六 用deploytool工具部署CMP实现的实体...

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

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

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

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

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    8.4.4 改变异常处理的方式 8.5 小结 第九章 CVS使用指南 9.1 CVS介绍 9.1.1 CVS简介 9.1.2 为什么要使用CVS 9.2 建立CVS的开发环境 9.2.1 下载CVS 9.2.2 配置CVS 9.3 CVS的使用方法 9.3.1 添加CVS资源库 9.3.2 提交...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    8.4.4 改变异常处理的方式 8.5 小结 第九章 CVS使用指南 9.1 CVS介绍 9.1.1 CVS简介 9.1.2 为什么要使用CVS 9.2 建立CVS的开发环境 9.2.1 下载CVS 9.2.2 配置CVS 9.3 CVS的使用方法 9.3.1 添加CVS资源库 9.3.2 提交...

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

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

    Java Web项目整体异常处理机制

     出来工作一年时间了,我也大概对异常处理有了一些了解,在这呢小弟简单介绍下个人对异常处理的见解,抛砖引玉,希望各位大神提出宝贵的意见和建议。  拿spring+struts2+hibernate项目说明:通常一个页面请求到...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    8.4.4 改变异常处理的方式 8.5 小结 第九章 CVS使用指南 9.1 CVS介绍 9.1.1 CVS简介 9.1.2 为什么要使用CVS 9.2 建立CVS的开发环境 9.2.1 下载CVS 9.2.2 配置CVS 9.3 CVS的使用方法 9.3.1 添加CVS资源库 9.3.2 提交...

    J2EE指南.doc

    异常处理 88 第6章 CMP的例子 89 一 RosterApp应用概述 90 二 layerEJB代码分析 90 三.RosterApp配置说明 95 四 RosterApp中的方法调用 102 五 运行RosterApp应用程序 109 六 用...

    J2EE应用开发详解

    内容为J2EE应用开发详解中的源代码 第1章 Java Web应用开发简介 1 1.1 Java EE应用概述 1 1.2 Java EE概念 1 1.2.1 Java EE多层模型 1 1.2.2 Java EE体系结构 2 1.3 Java EE的核心API与组件 4 1.4 Web服务器和应用...

Global site tag (gtag.js) - Google Analytics