异常这部分还是不太熟,在DAO中出现SQLEXCEPTION异常,如何使之通知业务层
我做了一个DAO类DAO方法
public void doExec(String sql_IDU) throws SQLException {try 
{
                  .......
 
} catch (SQLException SQLe) {
   status = SQLe.getMessage();
   throw new SQLException()
} finally {
 
  }
}业务层调用
public boolean deleteCompany(String companyId) throws SQLException{
try {
                        ......
dao.doExec(sql.toString());
result = true;
} catch (Exception e) {
System.out.println("deleteCompany,wrong..................");//这里总是得不到DAO层出现的异常
}}

解决方案 »

  1.   

    java的异常怎么这么别扭,其它语言都是
    tryexcept
      如果向上级抛异常,就用raise exception.create就OK了
    end;
      

  2.   

    按理说LZ代码没问题,就是在catch到异常后继续往上抛的。说点别的:deleteCompany既然在捕获异常后没有继续往上抛了就没必要再声明throws块了
      

  3.   

    你给的代码,只要语法正确(比方说throw new SQLException()后没有分号哦),就应该可以捕获到异常。
      

  4.   

    需要抛到UI层啊,但我这个为啥从DAO层就抛不到业务层,真郁闷
      

  5.   

    真奇怪,测试了半天在业务层就是捕获不到,我再DEBUG一下吧,谢谢哦
      

  6.   

    会不会是你的代码本身就是正确的,
    你的dao层 正确执行了  就不会抛出了 当然也无逻辑层就无法捕获了你修改下你的代码,人为的抛出SQLException试试业务逻辑层应该可以捕获到的。
      

  7.   

    正确地使用异常,需要有大量的代码实践经验,特别是什么时候该使用 RuntimeException,使用时候该使用 Exception 是有些讲究的,慢慢深入就能体会了。PS:据我见到的,很少有人能正确控制及使用异常。要不是就是清一色地往外抛,要不就是全部 catch 住。
      

  8.   

    在 Java 开发者中,有以下这些看似简单,但真正能灵活运用,起到他们应有作用的开发人员却是少之又少:1:异常
    2:日志
    3:接口
    4:静态方法
      

  9.   

    不用
    catch (SQLException SQLe) {
       status = SQLe.getMessage();
       throw new SQLException()
    }
    就已经自动向上抛 SQLException了