什么时候用throws  什么时候用throw 。
 我的理解是 throw  是抛出某个具体的异常类对象 而throws 是抛出可能会发生异常的异常类 .
  不知道这样理解 错在哪里 .请各位帮帮我的.

解决方案 »

  1.   

    throw 是在函数的调用处抛出一个异常,然而throws是再此处不对这个异常进行处理,而是交给函数的调用处去处理,
      

  2.   

     void m(int i) throws Exception
    {
          if(i == 0) throw new ArithmeticException("除零错误!")
          System.out.println("程序正常!");
    }
    这样写对吗. throws 和throw 出现有先后顺序吗  还是没有理解各自的概念..
      

  3.   

    使用的位置不一样   一般在 函数头处用throws  比如IOETest()throws IOException
      

  4.   

    你这样写的编译肯定是没有问题了,但是你在用m函数的时候还是要对异常进行处理的,弄明白不?就像这样一样
    public class M
    {
    public static void m(int i) throws Exception{  //因为这个
     if(i == 0) throw new ArithmeticException("除零错误!");
    System.out.println("程序正常!");
    }
    public static void main(String[] args) 
    {
    try{                      //必须有这个
    m(2);
    }catch (Exception e){
    System.out.println(e);
    }

    }
    };
      

  5.   

    throws 放在方法名后,throw放在方法体里,就是放得位置不一样
      

  6.   

    throw是抛出一个具体的异常对象,一般在方法内部,而throws是将捕获的异常抛出去在别的地方处理,一般在方法参数后面
      

  7.   

    throw抛用户自定义异常,throws抛jvm认为的异常类
    /////java处理异常方式///////////////////////////////
    在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1;
    int j = 0;
    int res = 0;
    res = i/j;//除0错误
    System.out.println(res);这5句代码运行到第四句会中断,因为jvm抛出了异常////throw的作用/////////////////////////////////////////
    手动抛出异常但是有时候有些错误在jvm看来不是错误,比如说
    int age = 0;
    age = -100;
    System.out.println(age);
    很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。
    所以我们需要自己手动引发异常,这就是throw的作用
    int age = 0;
    age = -100;
    if(age<0)
    {
    Exception e = new Exception();//创建异常对象
    throw e;//抛出异常
    }
    System.out.println(age);////throws的作用///////////////////////////////////
    声明方法可能回避的异常有异常被抛出了,就要做处理,所以java中有try-catch
    可是有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常
    但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常
    void fun()throws IOException,SQLException
    {
    ...
    }
    这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候就会做好准备,比如可以这样
    try
    {
    fun();
    }catch(IOException e)
    {
    }catch(SQLException e)
    {
    }
      

  8.   

    你可以这么理解
    throws是用来声明某个方法要抛的异常,以提醒调用该方法的其它方法,对它进行异常捕获
    throw 就是用来引发异常的public void method() throws MyException(){  // 其它方法注意,当你们调用我时,我可能会抛XXX异常
        if(xx){
            xxxxxxx    
        }else{
            throw new MyException();//引发异常,抛异常 
        }
    }
      

  9.   

    很显然,17楼的  throws MyException()否定了10楼的“throws抛jvm认为的异常类”一说。
      

  10.   

    throws 声明异常哪个调用,哪个处理,throw抛出异常不处理。
      

  11.   

    throws是用在函数体,一般比较大的概括,而throw一般是在函数内针对比较具体问题
      

  12.   

    如果一个方法中抛出了异常.希望调用者捕获异常.那么如何通知调用者勒?就是通过throws声明某个方法可能抛出各种异常.
    throw 用来自行抛出异常.抛出异常的原因在于:当前环境无法解决参数问题,因此在方法体内通过throw抛出异常,把问题交给调用者解决...书上说的 ....
      

  13.   

    你在程序里面throws看看?一个是定义,一个是具体的抛出行为。
      

  14.   

    throws 放在方法名后,throw放在方法体里,就是放得位置不一样,多测试一下了
      

  15.   

    throws 用来声明有这个异常会抛出,有时候也用在不处理当前方法会出现的异常,而把这些异常转交给调用这个方法的方法来处理。
    throw 用于实际抛出异常这个动作。
    例子:
    throws: public String search() throws UnsupportedEncodingException {
    service.search(getPagination(), sender, reciever, fromDate, toDate, fileName);
    return INPUT;
    }
    throw: if (xxxx) throw Exception("抛出一个异常");
      

  16.   

    throws语句是在方法的声明中使用来抛出异常,而throw语句是在方法体内使用抛出异常。
      

  17.   

    throws 表示“会抛出的异常”,可以理解为一个名词,只能写在方法原型的中throw 表示“抛出异常”,可以理解为一个动词,表示方法体中需要向外扔的异常
      

  18.   

    throw是一种命令抛出异常对象,而throws是声明方法可以抛出哪些异常
      

  19.   

    throw有点像英文的祈使句,在具体的方法体中命令程序throw某个异常而throws像是一个名词,这个方法“会抛出的异常",也就是exceptions this method throws,这个是出现在方法原型中的。
      

  20.   

    throws好比国务院发言人,或者国防部发言人,他们只是做一个声明
    中国可能会使用核武器,但是只在以下情况下才使用核武器....throw是按动和按钮,真的扔了一个核弹
    /**
     * 这个方法干了一点事情。
     * @throws NuclearException 如果对方是核武国家,并且对方首先使用核武器的话
     */
    public void foo() throws NuclearException { // 声明,我们可能会,具体情况,参考上面的javadoc
      if (underAttack && enemy.hasNuclearWeapons() && attackEvent.isNuclearAttack()) {
        throw new NuclearException(); // 按下了核按钮
      }
      // ... 正常处理
    }
      

  21.   

    throws在方法声明的时候使用,告诉JVM这个方法可能会抛出这些异常,需要进行异常的拦截。
    而throw是在方法中显示的抛出异常。
      

  22.   

    throws放在方法名后面用来声明改程序会产生哪些异常,throw是放在方法体中用来书写某个异常的处理方法!