论坛首页 Java企业应用论坛

异常应该如何使用?

浏览 6614 次
精华帖 (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 的情况,这个应该是程序员的问题。当然,最好有工具能提醒或强迫程序员来处理我想那是最好的了。
0 请登录后投票
   发表时间:2005-04-04  
大量使用自定义异常会导致程序占用大量的堆栈

开发出来的应用性能大打折扣,量力而行把,不要什么都异常一把
0 请登录后投票
   发表时间: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,最主要的原因就是把接口和实现绑定到一起了。
0 请登录后投票
论坛首页 Java企业应用版

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