我的理解是这样的……
对方法内部会抛出的各种异常,如果应该让这个方法自己处理的,就catch他;如果不应该让这个方法处理,就throws他,让调用这个方法的方法去处理……

解决方案 »

  1.   

    在方法内部用throw 抛出异常,但在类声明时 需 throws 异常
    class myclass throws MyException{
       public myMethod(){
           aaa
           throw new MyException();
       }
    }
    大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
      

  2.   

    在方法内部用throw 抛出异常,但在类声明时 需 throws 异常
    class myclass throws MyException{
       public myMethod(){
           aaa
           throw new MyException();
       }
    }
    大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
      

  3.   

    chinaLinCT(牛牛)的说法似有不妥之处。 
    “在方法内部用throw 抛出异常,但在类声明时 需 throws 异常”?
    方法内部用throw 抛出异常,同时CATCH异常的话,不必在声名时throws 异常。如果在某个方法中throw了一个异常,但是又不想在该方法中处理的话,就可以再次抛出(throws),让调用它的方法来处理。调用它的方法如果觉得可以处理的话,就catch,否则可以再次抛出(throws),直到有方法处理为止。如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。
      

  4.   

    “如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。”
    ——是这样吗?你试试……
      

  5.   

    throws 只是告诉调用者,可能会抛出异常,并提醒调用者对这种可能的异常进行处理,至于你是处理还是继续扔给上级调用者,那就是你的事了,并不是一定会抛出异常。
    有一些异常是在编译的时候不能被确定是不是会被抛出的,只有在运行时并在特定条件下(如程序逻辑处理错误)才会产生,这种是运行时异常,都继承自 RuntimeException 类,此种异常不需要用 throws 来声明。
    还有一种是 Error,用来标记一些严重的错误,和 RuntimeException 一样不需要显示申明,但它是是继承自 Throwable。