我写的javabean程序很多方法都没写抛出例外的代码,程序也正常运行,可是总看见别人的代码里有好多抛出例外的代码,有必要吗?
初学,请大侠们指点下,最好详细些,多谢了!

解决方案 »

  1.   

    是向上抛出异常还是本身处理,使根据你自己的逻辑来设计的。
    一般而言,底层的类,都是抛出异常的,因为这些底层的类与业务联系不紧,不可能做通用的处理。而调用这些底层类的对象,就可以根据捕获异常的不同,再根据相关业务,做出不同的处理。比如,DAO中一个返回结果集的方法ResultSet getResult(...),肯定会是有SQLException异常产生的,这时,可以有两种处理方法:
    1、抛出SQLException异常;
    2、捕获异常进行处理,比如,如果有异常,就返回null。常见的处理是抛出异常,由调用的类捕获后处理。
    如果使用捕获异常返回null的方法处理,也无可厚非,这样,调用的类就要根据取到的结果是否为null来做相关处理了。也不是所有的底层类都抛出异常,比如,一个关闭Connection的方法,就没有必要抛出异常了,因为抛出异常后,也是和不抛出一样的处理方法。总之,抛不抛出,主要是看你怎么处理方便了。
      

  2.   


    如果有一个我自己设计、写的方法,那我应该写一个异常抛出好呢,还是用if...else..好?
    感觉所有的抛出异常(除了必须抛出异常的方法)理论上都可以用if..else..代替,是吗?
      

  3.   

    因为传统的c/c++程序员都是用特定的数字作为返回码记录错误。
    例如
    return -1;就是表示文件不存在 等等这种处理错误的方式没有扩展性,而且很容易与其他程序员自定的错误返回码重复。
    所以Java引入了exception机制 ,并且使用exception链的形式处理,也就是exception可以一层一层地往上报结合catch和finally关键字,可以比较优雅的解决错误处理的问题
      

  4.   

    "抓"和"抛"有什么分别?为所有的方法都写例外处理是不是最好的方案---------------------
    抛: public void getResultSet() throws SQLException{}抓: try{
           
         }catch(Exception e){
           e.printlnstrack();
    }
      

  5.   

    to shiningsb(坚强的理由)
    ============
    是不是"抓"就是在方法外部,而"抛"就是在方法内部?
    我初学,您能说得易懂一点吗?谢谢!
      

  6.   

    各位说的都很有道理,抛出异常因程序而宜,但是个人见解抛出异常和捕获异常是十分必要的,像各位所说,如果你什么错误也不抛出,我想程序是不会运行通过的,既然JAVA中规定了异常我想自然有用处.呵呵!`
      

  7.   

    是向上抛出异常还是本身处理,使根据你自己的逻辑来设计的。
    一般而言,底层的类,都是抛出异常的,因为这些底层的类与业务联系不紧,不可能做通用的处理。而调用这些底层类的对象,就可以根据捕获异常的不同,再根据相关业务,做出不同的处理。比如,DAO中一个返回结果集的方法ResultSet getResult(...),肯定会是有SQLException异常产生的,这时,可以有两种处理方法:
    1、抛出SQLException异常;
    2、捕获异常进行处理,比如,如果有异常,就返回null。常见的处理是抛出异常,由调用的类捕获后处理。
    如果使用捕获异常返回null的方法处理,也无可厚非,这样,调用的类就要根据取到的结果是否为null来做相关处理了。也不是所有的底层类都抛出异常,比如,一个关闭Connection的方法,就没有必要抛出异常了,因为抛出异常后,也是和不抛出一样的处理方法。总之,抛不抛出,主要是看你怎么处理方便了。
      

  8.   

    Java运行时环境搜寻调用堆栈来查找任意的处理特殊的异常的方法。一个方法能够抛出它内部的任何异常,所以允许一个上层调用堆栈的方法来捕获它。