论坛首页 Java企业应用论坛

问一个关于如何设计处理多种异常原因的问题。

浏览 3515 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-11  
这个问题很简单,经常会遇到,可是我一直没有找到一个自己觉得很好的办法来处理。

当要插入一条记录是,当数据库中已经存在一条相同的记录时(比方说用户名规定不能相同),方法名是add,那么这个方法的定义是void好还是boolean好呢?

我觉得如何用void的话,为了返回错误信息就应该用抛出异常的方式,这样的话如果错误的原因有n种,那么就应当定义n个异常类型。

如果用boolean的话,只能反馈成功或失败,如果错误的原因可能有多种,好像不是很好。

要不然返回一个String类型的值,比方说success表示成功,failureByExist表示已有重复记录,failureByOther表示其它原因……这样搞起来其实和第一种方式差不多。

我还想知道,还有没有更好的方法来处理这类问题。

谢谢!
   发表时间:2006-10-11  
用Exception有什么不好吗?
0 请登录后投票
   发表时间:2006-10-11  
看了你的问题,我也想了下,也无法确定哪个方法好。而我以前一直是用boolean的,不管为什么无法插入,只管插入是成功还是失败。

而确实需要知道为什么无法插入时,我在执行插入操作前做一系列的判断,
无法通过这些判断就无需插入了,这时也就知道什么原因无法插入了。

脑袋瓜子不好使,只要这样用,吸取有经验人士的指点。
0 请登录后投票
   发表时间:2006-10-11  
BirdGu 写道
用Exception有什么不好吗?


也没觉得有什么不好,只是不知道有没有更好的而已。

其实就是有一点烦琐,一是要定义不少异常,二是要写不少try catch块,想看看有没有能减少些代码量的方法。
0 请登录后投票
   发表时间:2006-10-11  
在异常里面加上个错误信息好了

这样只要一个exception就好了

我是这么想的,不知道有没有更好的办法
0 请登录后投票
   发表时间:2006-10-11  
http://www.iteye.com/topic/2038
0 请登录后投票
   发表时间:2006-10-11  
用RuntimeException。

定义一个跟RuntimeException,然后各个子RuntimeException代表不同出错类型。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics