我找到两中解决的方法:
1.将bookItems提升为成员变量然后在函数的最后部分,返回。
public ArrayList getBookItemList()
{
   .....
   return bookItems(最后的位置);
}

解决方案 »

  1.   

    2.在 catch中重抛异常,其它不变。
    catch(Exception ex)
    {
       throw new EJBException(ex);
    }
    在找到该方法之前,我又碰到了一个麻烦,为什么它不让我这样抛呢?
    throw new Exception(ex);
    它报告 说:unreported exception java.lang.Exception;must be caught or declared to be thrown
    难道不能原封不动的重抛吗?C++还可以的。
      

  2.   

    如果你的方法需要抛出异常,就需要在方法声明的时候throws Exception,指明方法抛出异常.也可以这么改:
    ArrayList bookItems = new ArrayList();try {
    }
    catch (Exception e) {
    }return bookItems;
      

  3.   

    BookItem bookItem = new BookItem(book.getIsbn(), book.getName());
            bookItems.add(bookItem);
          }
          
          return bookItems;
        
    你的bookItems 到}的时候已经消亡了...你return的时候根本没有这个bookItems了...2要想throw exception,你必须要有 throws ... ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  4.   

    zez(思恩 为老婆多挣钱 鹤清风) ( ) 说的是:在你的
    方法声明处加入throws Exception 
    public ArrayList getBookItemList() throws Exception
    {
    .....
    }
    这样才可以
    throw exception
      

  5.   

    public ArrayList getBookItemList()
      {
        try
        {      Collection books = bookHome.findAllBooks();      ArrayList bookItems = new ArrayList();
          Enumeration items = Collections.enumeration(books);
          while(items.hasMoreElements())
          {
            Book book = (Book)items.nextElement();
            System.out.println("enumeration");
            BookItem bookItem = new BookItem(book.getIsbn(), book.getName());
            bookItems.add(bookItem);
          }
          
          return bookItems;
        }
        catch(Exception ex)
        {
          System.out.println("Exception in findAllBooks in BookHandlerBean: " + ex);
          return null;
        }
      }
    要是发出异常不是没有返回值了吗?所以在 if(){}else{}里面也会出现这种问题
      

  6.   

    to: zez(思恩 为老婆多挣钱 鹤清风)
    “你的bookItems 到}的时候已经消亡了...你return的时候根本没有这个bookItems了”
    你好象看错了,我return的是bookitems不是bookitem,我的bookitems作用域在try内,是可以返回di.至于我没有声明throws Exception是因为我编的是EJB,我在远程接口已经声明抛出了。这里就没必要了。
      

  7.   

    to: shangqiao(伤桥) 
    异常机制和if else的return好象不同的呀,我同意你的看法,if else的每个分支都需要return,但异常好象是不需要的呀。是这样的吗?有没有其他人可以作个裁决呀?
      

  8.   

    如果你的方法不抛出异常的话,在你的catch中也需要return.