我爱oo,我爱java

交流blog QQ:421057986 oofrank@donews

我的评论

re: 白马非马的面向对象分析 兼听则明 2006-02-10 14:33  
设计正方形为矩形的子类? 什么意思?
re: log,exception最佳实践 兼听则明 2006-01-20 17:28  
使用 log4E 还是不错滴......
re: Spring 中的异常悖论 兼听则明 2006-01-20 17:24  
to pesome:
同意
re: Spring 中的异常悖论 兼听则明 2006-01-20 15:33  
to yuxie:
如果数据库记录很多,checkUserExist(),成本很高,另外,如果有并发冲突时checkUserExist()将很可能失效。--如你所说!
re: Spring 中的异常悖论 兼听则明 2006-01-20 13:42  
to yuxie:
你说的很对,Spring最好不要侵入我们的领域。

但对于 “addUser() 可以抛出UserExistException 比 主键冲突的 DataAccessException好的多” 问题,我们怎样才能处理到底是数据库连接异常,还是仅仅是重复UserID的输入错误(即主键冲突--业务主键)呢?
re: Spring 中的异常悖论 兼听则明 2006-01-20 11:44  
checked exception可以替代返回值::确实如此,实际上业务异常是以返回值的身份出现的,更不该是"异常",比如login()方法可能抛出 UnknownUserException,WrongPasswordException....
而 addUser() 可以抛出UserExistException 比 主键冲突的 DataAccessException好的多.
re: Spring 中的异常悖论 兼听则明 2006-01-20 11:23  
在充分设计和充分测试的情况下,这个问题可以被控制到很小的范围,但是谁能保证设计和测试足够"充分"呢?
re: Spring 中的异常悖论 兼听则明 2006-01-20 11:20  
to: yuxie

实际我都捕获了,并忽略了----忽略也是一种“你说的恢复”,另外“不能被恢复的异常你要做成Runtime的”的问题在于现在Spring中把所有的异常都封装成Runtime的了----当然,我们还可以通过捕获处理我们想处理的问题。
re: Spring 中的异常悖论 兼听则明 2006-01-20 10:39  
to qiu:
然,Spring帮我捉了一只虫,
你是否感谢MS帮你捉了 其他软件的虫呢 --------写了半天帖子---系统崩溃,没能保存----
在没有上线时,触发bug非常好!可是如果系统正式运行时发生的瘫痪级异常,作为软件开发者还会笑的出来吗?
---显然,使用某种通知机制通知管理员,由管理员来需求开发人员支持,好过使用系统宕掉的方式通知软件开发者....
re: Spring 中的异常悖论 兼听则明 2006-01-20 10:34  
to: 王麻子
我觉得你说的是对的,但是有时候需求并没有分析完全,在系统上线后才发生这个问题,即本该是“业务需求抛出一系列的应用异常.”但实际抛出了RuntimeException,我认为同样不该展现给客户“异样”的异常:
例:----仅仅是例子!
我使用Qutarz作调度,当一个调度不能被fire时,它将抛出RuntimeException,我们的测试(案例)没有发现这个情况,到系统上线时,抛出异常,如果随便给客户一个"系统错误",我认为是很不好的,因为客户会认为发生了很严重的错误,实际只是简单的输入错误而已,即按年调度,但在开始时间到结束时间端内没有该调度触发的时机。
re: Spring 中的异常悖论 兼听则明 2006-01-20 10:25  
to: darkbluefeeling
当然,如果重要的系统部分不能init成功,系统应该首先排错;但如果只是很小的一个部分不能init成功--就造成系统不能启动,我认为是系统设计有问题。
比如:如果声卡驱动装载不成功,操作系统就不能启动,只是 "兰屏",你将大骂操作系统,而如果硬盘有故障,操作系统不能引导,则是骂不到操作系统。
re: 如果把道路稍微修改.. 兼听则明 2006-01-19 21:52  
我觉得是个好办法, 我也曾经这么想过,只是有隔离带的路比较麻烦(北京好多路都有隔离栏、墩)
re: 白马非马的面向对象分析 兼听则明 2006-01-19 21:41  
呵呵,真的不知呀,我随便想到瞎写的