本帖最后由 sunh_li 于 2010-11-18 20:57:05 编辑

解决方案 »

  1.   

    如果查询时有异常发生,那么直接返回null
      

  2.   

    没这么写过,一般都是把集合list写在try块外面去声明,在最后return list,这么写没什么用,具体用途就是设一个返回值,你可以试试把它去掉能不能通过编译!
      

  3.   

    上面的不鸟解,只鸟解 return null   是返回一个空值!
      

  4.   

    我认为是这样的:首先执行try区块,如果没有异常,就return list;不再执行catch区块,也不执行return null;了,如果有异常就执行catch区块,最后执行return null;
    不晓得是不是这样的。
    这段代码是JspRun论坛的源代码。
      

  5.   


    你说的这种写法是很多人的写法,但是是不对的,这只是我们程序员追求单入口单出口的程序结构,还是有点原来面象结构编程的习惯。正确的应该是处理完了就马上返回,不去做这种单出口的限制,一个程序块其实是可以有多个出口的,而且在重构中这也是一个重要的重构项。最后一行return null,就是在你的方法出异常后返回的,其实这行代码放到catch块中也是一样的效果。最后提一个小小的问题,你这个方法只是个查询方法,为何要使用事务呢?事务可是很耗资源的,能不用就尽量不要去用,一般推荐所有的查询类方法都不要使用事务。如果不使用事务,那这行代码List list = query.list();就尽量改成return query.list;尽量减少不必要的变量声明。
      

  6.   


    而且这行代码不能去掉,也就是说要么在catch块中或在最后有一个return 语句,否则编译不通过,会报程序必须要有返回值的。
      

  7.   

    如果不写的活。编译器是不通过的,你根本就执行不了代码。。
    RETURN NULL   也只是骗过编译器的一种方式只要你返回的类型和LIST  匹配就可以。不一定非得是NULL。这样你懂的不?