大家好,我想问一下throws和trycatch两者该怎么样使用?什么时候用前者,什么时候用后者。两者是不是可以互换使用呢?

解决方案 »

  1.   

    你想暂时不处理异常时,用throws,交给上一级处理!!
    trycatch的话,就在这一级捕捉异常,并处理throws 相当于援兵之计,到最顶层就不能throws啦~
    一般情况,最好写try catch,但也得看情况
      

  2.   

    当你处理不了这个异常,需要将异常抛出时用throws ,一般用在较底层的程序中
    当你可以或者必需对程序抛出的异常处理时,就用trycatch,一般用在上层的程序中
      

  3.   

    你想暂时不处理异常或当前没有能力处理时,用throws,
    try{}catch{}当前捕获处理
    throws 交由上级处理
      

  4.   

    你处理 不了的 情况 让你 上级处理 这时 用throws你能 处理的就不要 老去问你 上级,否则你的上级 会说你 没有 思想 没有独立解决问题的能力的这时 用 try catch
      

  5.   

    trycatch就是比throws多了可以处理问题的能力 处理了问题可以不影响程序的进行
    而throws就不行 出错会终止程序
      

  6.   

    两个都是在编写一个方法的时候用。
    throws 是说,我这个方法可能会抛出某种异常,自己的方法内不解决,把异常抛给那些来调用它的方法,让它们想办法解决这个异常。try catch是,我这几个代码段可能会抛出某种异常,自己解决。对那些调用这个方法的方法来说,就不需要为这个异常想办法了,这个异常对他们来说是无需考虑的。
      

  7.   

    是你可以处理的并应该处理的你就try catch{}
    是你处理不了的或者能处理但不是你责任范围之内的的(呵呵,看你人品啦)你就throw掉
      

  8.   


    说的很好,可以参考以下代码 public class TestSycronized implements Runnable{

    int b = 100;public synchronized void m1() throws Exception{

    b =1000;

    Thread.sleep(5000);

    System.out.println("b ="+b);


    } public void m2(){
    System.out.println(b);

    }
    public synchronized  void run(){

    try{

    m1();
    }catch (Exception e){

    e.printStackTrace();

    }


    }
    public static void main(String[] args) throws Exception{

    TestSycronized ts= new TestSycronized();

    Thread t =new Thread(ts) ;

    t.start();
    Thread.sleep(1000);

    ts.m2();
    }}
      

  9.   


    通过throws-try-catch总能找到一个地方来处理异常,这在business logic中就显得格外重要了。
      

  10.   

    处理繁杂的业务逻辑 会有很多java库的异常和自己写的异常 
    这时如何决定是处理掉还是向上抛出,将决定你的系统是否合理
    这在写小程序中体现不多  当程序一旦写大了 见到异常就 处理 会很多的冗余,繁杂 让人思路混乱
    在底层的程序将 具体的异常 向上抛出 很赞成
    在中层的程序接受了异常 一些归类的异常统一的处理 这样很清晰,还可以将异常处理了但接着
    抛出一类报告异常 也就是向顶层报告出了什么哪一类事 这样就会让程序