黑马程序员技术交流社区

标题: throw和throws区别什么啊。 [打印本页]

作者: 张钧杰    时间: 2012-11-14 20:28
标题: throw和throws区别什么啊。
本帖最后由 张钧杰 于 2012-11-14 20:45 编辑

throw和throws区别什么啊。他们两个具体怎么用啊。怎么越学越糊涂啊!

作者: 崔利鹏    时间: 2012-11-14 20:35
throws 用于抛出方法层次的异常,并且直接由些方法调用异常处理类来处理该异常,所以它常用在方法的后面。
throw 用于方法块里面的代码,比throws的层次要低,比如try...catch ....语句块,表示它抛出异常,但它不会处理它,而是由方法块的throws Exception来调用异常处理类来处理。
作者: 黑马_宋超    时间: 2012-11-14 20:36
throws使用在方法上,并且抛出的是异常类。
throw使用在方法内,抛出的是异常对象。
作者: 张钧杰    时间: 2012-11-14 20:44
谢谢,,!
作者: 邵天强    时间: 2012-11-14 20:53
(1)throws使用在函数上,throw使用在函数内
(2)throws后面跟的是异常类,可以跟多个,用逗号隔开
        throw后面跟的是一场对象。
(3)throw是语句抛出一个异常,throws是方法抛出一个异常
       throw语法:throw 异常对象
       在方法声明中,添加throws子句表示该方法将抛出异常
       throws语法:
[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]   
       例如:public void test()throws Exception(){}
(4)throws可以单独使用,但throw不能
(5)throw要么和try{}catch{}语句配套使用,要么与throws配套使用,但throws可以单独使用,然后再捕获。

例如:我自定义一个异常类
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
    public static void main(String[] args) {
       Test t=new Test();
       int x;
try {//在调用div方法时,必须捕获此异常。
  x = t.div(5,-1);
  System.out.println(x);//这段代码不是被执行,因为上面抛出自定义异常了
} catch (MyException e) {
  
  e.printStackTrace();
}
      
    }
    public int div(int a,int b)throws MyException{
     if(b<0){//如果b小于0,则抛出自定义异常
      throw new MyException("出现了负数");//抛出对象实例,停止执行后面的代码
     }
      return a/b;
     
    }
}
class MyException extends Exception{//自定义一个异常类
public MyException(String msg){//创建一个有参的构造函数
  super(msg);
}
}

作者: 黑马吕世成    时间: 2012-11-14 21:40
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。throw抛出的异常必须捕获。不然编译报错。
作者: 王龙    时间: 2012-11-14 22:00
throws和throw的区别:
*throws使用在函数上.
*throw使用在函数内
*
*throws后面跟的异常类,可以跟多个,用逗号隔开.
*throw后跟的是异常对象.
*/




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2