很多时候,在java中处理异常时是使用try{...}catch(Exception e){...}还是使用throws语句?
有一次,我的一个同学谈起,他说,"在程序使用(过量)的try catch语句使程序的可读性降低,不便于维护".但是依我看来,这句话虽然很对,但是从程序的健壮性来说,这个确实在点缺点,因为你使用throws语句时自动地将异常交给系统处理,不能自己处理,显得不够直观,这给用户带来不好的感受.但是...哪位高手有没有更好的意见?

解决方案 »

  1.   

    视情况决定,有的公司会规定异常统一抛到某层处理的...
    throws不是交给系统,而是抛给调用者处理....
      

  2.   

    唯一需要注意的是,不把try/catch写进循环里咩....
      

  3.   

    首先你的理解是有问题的,..throws语句时自动地将异常交给系统处理,不能自己处理,显得不够直观,这给用户带来不好的感受.但是... 

    这句话了
    使用throws,只不过把异常向上抛而已,什么叫向上抛,,比如我们现在编了一个读写文件的类,我们使用了throws ,那么在另外一个类里面调用读写文件的类的时候,就要用try catch 了。使用throws,只不过在本函数不处理,给别的,诸如调用其函数的处理(这个函数就要写try catch)我也是新手,来学习!!!!!
      

  4.   

    try{...}catch(Exception e){...}可以处理逻辑返回值。
      

  5.   

    最近我的项目也老因为这个争执,我都已经厌烦了,throws只是抛给调用你这个方法的那个方法,你在上面也throws的话继续抛给上上曾,就这么一直抛到main函数那里?最好这样的异常要统一在某个曾里抓完之后,要进行统一的处理,不要什么都给main处理,给它处理runtimeexception就可以了~这个你可别抓~呵呵
      

  6.   

        “很多时候,在java中处理异常时是使用try{...}catch(Exception e){...}还是使用throws语句? ”
        如果考虑到你的某个方法可能会出现异常,并且你希望在改方法体内处理该异常,则使用try{}catch{}。
        假如出现的异常你不打算处理,希望将该异常传递给上一级,那就抛出异常,让调用该方
    法的方法处理异常。
        至于“在程序使用(过量)的try catch语句使程序的可读性降低,不便于维护”,过量的定义是什么?个人认为不仅仅是try catch,还有if,while等等,过多的使用都会使程序不便于维护。最好就是使功能独立的就单独作为一个单元。个人看法而已。
      

  7.   

    个人觉得还是try{...}catch(Exception e){...}比较好