浏览 1726 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-12
最后修改:2009-10-21
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了。这也算是一种折衷了,毕竟一大堆异常是不好的味道。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |