锁定老帖子 主题:异常应该如何使用?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-04-02
jinfeng_Wang 写道 所以啊,有必要翻翻 http://forum.hibernate.org.cn/viewtopic.php?p=9544&highlight= 当然,我是同意你的观点的。 因为一旦使用exception做这样的处理,那么客户端很可能就可能需要catch许多的exception。容易造成客户端程序员直接就是Catch一个基类exception,导致出错原因都未知,然后适当的状态回退都忘了。 这就不是编程风格、程序速度的问题了,而是程序正确性的问题。 但是,使用返回值的时候有一点问题, 编译器不会强行“客户端捕捉返回值”,也容易造成客户端程序员忽略那些null的返回值。唉~~ 我是早就看过了http://forum.hibernate.org.cn/viewtopic.php?p=9544&highlight=这个话题了。感觉robbin 的想法完全是一种错误的想法。exception 的确是可以控制流程,但如果用exception 控制流程,那if 这些判断语句还要它干吗呢??exception 就是处理异常的!!!异常的大量使用也会导致问题,用catch Exception 来处理一切,这也是现在到底要不要checked exception 的讨论根源所在。 至于你所担心的客户端程序员忽略那些null 的情况,这个应该是程序员的问题。当然,最好有工具能提醒或强迫程序员来处理我想那是最好的了。 |
|
返回顶楼 | |
发表时间:2005-04-04
大量使用自定义异常会导致程序占用大量的堆栈
开发出来的应用性能大打折扣,量力而行把,不要什么都异常一把 |
|
返回顶楼 | |
发表时间:2005-05-10
z_jordon 写道 请问异常该如何被正确的使用,如下面的代码,哪一种比较合理?
public User getUser(long id); { return userDao.getUser(id);; } public User getUser(long id); throws UserNotFoundException { User user = userDao.getUser(id);; if (user == null); throw new UserNotFoundException("...");; return user; } 假如这个UserNotFoundException需要变成UserDiedException,那么对设计有何影响?之所以不建议使用checked Exception,最主要的原因就是把接口和实现绑定到一起了。 |
|
返回顶楼 | |