现在设计一个exception handling系统。
server端用的是Spring+ibatis.
大的构想是用spring的aop技术在合适的地方catch住异常,然后进行一些处理,处理模块基本上是.net的exception handling block的架构,简单的说就是配置exception handler,然后进行处理。
常见的handler包括
wrapExceptionHandler:对异常进行转换再抛出。
replaceExceptionHandler:对异常进行替换再抛出。
logExceptionHandler:对异常打log然后抛出。
passHandler:不做如何处理,直接抛出。
对于checkedException和uncheckedException的选择。个人认为Spring的异常处理比较好。即对用户来说可以rollback的异常用checkedException,对于用户无法处理的异常用uncheckedException.
对于javaeye关于异常的讨论,似乎遗漏了一个很重要的对异常进行的分类方法。即异常可以分为系统启动时异常和系统运行时异常。启动时异常还是用uncheckedException比较好,fail fast嘛。并且一旦在启动时遇到异常,系统直接down掉,只有配置好的系统才可以运行。这应该算是一种个人喜好。
对于一些特殊的API,如login,个人认为用异常进行区分是不好的,针对这种特殊的异常,可以设计返回值,用来区分用户可处理的异常情况,如password错等。
这个设计的主要问题是performance,但是我还没有测试过。一个健壮的系统产生的异常应该不会很多。
error code还是很重要的,不然会导致异常泛滥,没有办法,只有自定义一些error code了。这也算是一种折衷了,毕竟一大堆异常是不好的味道。
分享到:
- 2008-11-12 22:02
- 浏览 1528
- 评论(0)
- 论坛回复 / 浏览 (0 / 1726)
- 查看更多
相关推荐
"VC++ exception handling" 主题涉及到如何在VC++环境下有效地管理和解决程序运行时可能遇到的错误或异常情况。 异常处理是C++中的一个机制,它允许程序员在程序执行过程中捕获和处理错误,而不需要在每个可能出现...
需要确保数据的安全、完整性和一致性,并对数据进行质量控制和 exception handling。 第五,数据访问和应用。数据访问和应用是大数据平台规划的最后一步。需要提供合适的数据访问接口和应用程序,如报表工具、数据...
在本项目中,我们使用了统一建模语言(UML)进行系统设计,并采用C++进行实现。下面将详细介绍UML设计的关键元素以及C++实现的相关知识点。 首先,UML是一种图形化的建模工具,用于描绘软件系统的结构和行为。在ATM...
在本项目中,"C++课程设计之航空订票系统"是一个典型的面向对象编程实践,旨在让学生掌握C++语言在实际应用中的能力,特别是对于模拟真实业务流程的系统设计。这个系统可以处理乘客的机票预订、查询、取消等操作,...
除了基本的OOP特性,C++还提供了其他高级特性,如模板(Template)和异常处理(Exception Handling),这些在实现系统时可能会被用到。模板可以用于创建泛型代码,适用于各种数据类型,如在员工信息存储中使用模板类...
在这个"day65 分层实现商品管理系统"项目中,我们可以看到一系列按照功能划分的目录,如dao、service、view、exception、test、util和bean,这些都代表了不同的系统层次或组件。 1. **DAO层(Data Access Object)*...
C++的核心特性包括类(classes)、模板(templates)、异常处理(exception handling)、运行时类型信息(RTTI)以及命名空间(namespaces)。通过这些特性,C++支持面向对象编程(OOP)、泛型编程(generic ...
知识点6:异常处理(Exception Handling) 异常处理是C++的一种机制,用于处理程序中的错误和异常。在本系统中,可能会出现的异常包括文件读写错误、数据格式错误等,需要使用try-catch语句来捕捉和处理异常。 ...
本压缩包包含的部分代码是图书管理系统的一个核心组成部分,尽管尚未完全开发完成,但对于了解和学习图书管理系统的设计与实现具有一定的参考价值。 首先,我们来看"DAO"(Data Access Object)层的代码。DAO模式是...
在这个特定的压缩包“ASP.NET-[其他类别]BK通用信息采集系统.Netv1.00108正式版.zip”中,我们看到的是一个名为“BK通用信息采集系统”的应用,其版本号为1.00108,并且是正式版。 这个系统可能是用于自动化收集...
11. **继承(Inheritance)**:如果系统设计考虑到未来的扩展,可能会使用继承来创建特定类型的管理员或学生,如`Admin`类继承自`StudentManager`,添加额外的权限或功能。 12. **多态(Polymorphism)**:通过虚...
9. **实验报告**:除了源代码,项目还包含实验报告,这部分内容可能包括系统设计思路、实现过程、遇到的问题及解决方案,是学习和理解项目的重要参考资料。 本项目作为一个C++初学者的课程设计,不仅涵盖了基础的...
异常处理(exception handling)用于捕获和处理程序运行时可能出现的错误;以及STL(Standard Template Library)中的容器和算法,如vector、list和map,它们可以方便地管理和操作数据。 总之,基于多态的职工管理...
- **异常处理(Exception Handling)**:通过`try-catch`语句捕获和处理程序运行时可能出现的错误,提高程序的健壮性。 - **标准模板库(STL)**:使用容器(如vector、list)和算法库,简化数据结构的操作和算法的...
理解这些概念以及如何通过类来设计和实现复杂的系统是高级C++编程的基础。 7. **虚函数(Virtual Functions)**:虚函数是实现多态性的关键,它允许我们通过基类指针调用派生类的成员函数,从而实现动态绑定和 ...
Java OOP 门禁系统是一种基于面向对象编程思想设计的软件系统,主要用于管理和控制出入权限。...下载并学习这个项目,你可以深入了解Java OOP如何应用于实际的安全管理系统,提升自己的编程和系统设计能力。
10. **软件工程方法**:在设计大型C++项目时,需要遵循软件工程原则,如需求分析、系统设计、编码、测试和维护。面向对象分析(OOA)和面向对象设计(OOD)是其中的关键步骤。 以上就是C++语言面向对象分析与设计...
6. **异常处理(Exception Handling)** - 使用`try`、`catch`语句块捕获和处理可能出现的错误,提高程序的健壮性。 7. **标准模板库(STL)** - 容器(Containers):如`vector`、`list`、`map`等,用于存储和...
- **异常处理(Exception Handling)**:确保程序在遇到错误时能够优雅地失败,而不是突然崩溃。 4. **用户界面**: - 简单的命令行接口:项目可能只包含一个简单的命令行输入/输出,用户输入起点和终点,程序...
此外,异常处理(exception handling)也是C++中重要的错误处理机制,通过try-catch结构,程序员可以更优雅地处理运行时错误。 C++的另一大特色是STL(Standard Template Library,标准模板库),包括容器(如...