前段时间设计了一个异常处理,效果还可以,但还不是很满意, 不知道别人的异常处理是个什么样子,贴出来跟大家讨论一下。先看类图:
1 在开发应用时会对模块信息先进行记录,包括:模块名、模块编码、模块描述、默认异常级别、Action类、Service类、DAO类和其它调用的类等等。
2 会对异常级别的处理方式以及要处理的包进行配置,这些信息由ApplicationConfig来解析并缓存。
<exception>
<packages description="需要处理的包">
<package>com.exp.test</package>
</packages>
<priority description="优先级和处理方式">
<level name="LOWEST" value="1" mode="print,file,database" filePath="d://lowest_exception.log"></level>
<level name="LOW" value="2" mode="database,file" filePath="d://low_exception.log"></level>
<level name="NORMAL" value="3" mode="database"></level>
<level name="HIGH" value="4" mode="database,mail" mailAddress="ahzean@163.com,test@163.com"></level>
<level name="HIGHEST" value="5" mode="message" number="135******"></level>
</priority>
</exception>
3 模块信息会在第一次触发异常的时候进行缓存,并建立模块编码到模块信息、Action类到模块编码、Service类到模块编码、DAO类到模块编码的HashMap映射,这样异常触发类就可以根据className迅速查找的模块信息。
异常处理过程
1 出现异常->JaspExceptionHandler对异常堆进行分析找出异常触发类、关心的出错类并查找模块信息
2 调用LogWrapperService对异常信息进行包装,这个处理过程中也将ExceptionCode中列出的常见异常代码进行翻译,同时记录了用户的相关信息,如操作时间、用户名、客户端地址等等,最后LogWrapper中包装的信息包括提供给用户和提供给开发人员(包括异常触发类、程序执行过程出现的类、方法和行号,当然只列出配置包中的类,因为大部分异常信息涉及的类对我们来说没多大意义)两部分信息。
3 根据配置的异常处理级别调用相应的接口进行记录或提示,如写入日志文件、数据库、发邮件或短消息,最后弹出窗口提示错误信息(上面是显示给用户,下面显示给开发人员,默认隐藏)。
以上完全由程序自动捕获并处理,开发人员也可以干预处理过程,如设置异常级别和用户提示信息等。
分享到:
相关推荐
摘要使用Java异常的人很多,但能合理使用的却不多,Java异常处理设计是一个冷门的话题,但好的异常设计会让程序有质的变化,所以本文从各个方面分析便总结了,在J
一种基于ARM处理器的异常处理设计与实现.pdf
因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基础的知识,然后给出在进行Java异常处理设计时的几个建议。若有不正之处,请多多谅解和指正,不胜感激。以下是本文的目录大纲:一.什么...
oracle笔记异常处理,异常处理的代码案例和知识点笔记!
2.掌握异常处理程序设计技术并能正确应用。 二、实验内容 算术异常ArithmeticException(数组越界ArrayIndexOutOfBoundsException、字符串越界异常StringIndexOutOfBoundsException等)处理程序设计与调试。 三、...
高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架
MFC程序设计详细实例 第28章 异常处理MFC程序设计详细实例 第28章 异常处理MFC程序设计详细实例 第28章 异常处理MFC程序设计详细实例 第28章 异常处理MFC程序设计详细实例 第28章 异常处理MFC程序设计详细实例 第28...
Java程序设计 Java异常处理 Java程序设计异常处理 Java程序设计异常处理实例
Java面向对象程序设计 实验四 异常处理
问答互动引出学习目标 讲授法 示范练习 随堂报告 Python-异常处理-教学设计全文共6页,当前为第1页。Python-异常处理-教学设计全文共6页,当前为第1页。《异常处理》教学设计 Python-异常处理-教学设计全文共6页,...
C#程序设计(计算机专业)异常处理课件ppt
c,c++程序设计异常处理,希望可以对大家有用,提高大家对异常的处理能力。
异常处理最佳实践对异常处理设计至关重要的 6 条规则的演示实现,每条规则都用反模式和“最佳实践”解决方案以及 JUnit 测试进行了说明。
2013级,C++程序设计课件。第14章 异常处理和命名空间,内容 14.1 异常处理 14.2 命名空间 14.3 使用早期的函数库
Java 异常处理的 9 个最佳实践,在处理异常时可以参考。
异常处理 C语言程序设计教程C输入输出流PPT课件.pptx
模块7 异常处理 《Java程序设计案例教程》教学课件07异常处理全文共31页,当前为第1页。 学习目标 01 了解异常产生的原因。 02 了解Java异常体系结构,以及受检异常和未受检异常的区别。 03 掌握使用try-catch-...
介绍了异常处理机制,包括异常的抛出、捕获、传播,并描述了异常的处理模式、传播...不同应用领域的异常处理机制不同,以Java语言和工作流管理系统为例,分别介绍和讨论了程序设计语言层面和企业层面上的异常处理机制。
Java第10章 异常处理含源代码 Java第10章 异常处理含源代码 Java第10章 异常处理含源代码 Java第10章 异常处理含源代码 Java第10章 异常处理含源代码