在方法的声明是必须有throws,再次抛出的目的是因为有些方法里面不想处理本方法里面出现的异常,所以抛出去让调用这个方法的代码处理,所以调用有throws的方法必须使用try catch

解决方案 »

  1.   

    我的意思是我已经在方法里 catch 了异常,为什么还要 throws 呢?
      

  2.   

    方法里 catch 了异常,不用再 throws !import java.io.*;
    public class Test {
        public static void main(String args[]) {
            new Test().print();
        }
        public void print()  {
            try {
                System.out.println("hello");
                throw new IOException("IOException");
            } catch (IOException e) {
                e.printStackTrace();
            }    }
    }
      

  3.   

    public void test() throws Exception
    {
      try
      {
        throw new Exception("Throw from try block!");
      }catch(Exception e)
      {
        System.out.println("catch exception!"+e.toString());
        throw e;
      }
      finally
      {
        System.out.println("Finally !");
      }
    }
      

  4.   

    你是否确定你抛出的异常全部已经被自己捕捉,如果还有未被处理的异常,则必须再用throws抛出。
      

  5.   

    内部CATCH的EXCEPTION不需要THROWS,除非你在CATCH中显式THROW。
    所以,显式THROW必须THROWS,且THROWS的是THROW的父类EXCEPTION。
      

  6.   

    显式THROW也不一定需要THROWS,只要你在它的外层CATCH它就OK。如:
    method(){
    try{
         try{
             throw Exception();
            }
            catch(Exception e){
             throw e;
            }
            ......
         }
         catch (Exception e){
          System.out.println(e.toString());
         }
    }    
      

  7.   

    to ttt:
    不是说了吗?
    “因为有些方法里面不想处理本方法里面出现的异常,所以抛出去让调用这个方法的代码处理”
    catch了不想在catch块里面处理这个异常,而且要求通知调用这个方法的外部代码方法里面出了什么意外,所以再次抛出个异常出去