A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张钧杰 中级黑马   /  2012-11-14 20:28  /  1575 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张钧杰 于 2012-11-14 20:45 编辑

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

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 鼓励一下 ,这个老毕已经将的很清楚的了 ,.

查看全部评分

6 个回复

正序浏览
王龙 中级黑马 2012-11-14 22:00:43
7#
throws和throw的区别:
*throws使用在函数上.
*throw使用在函数内
*
*throws后面跟的异常类,可以跟多个,用逗号隔开.
*throw后跟的是异常对象.
*/
回复 使用道具 举报
黑马吕世成 来自手机 中级黑马 2012-11-14 21:40:00
地板
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。throw抛出的异常必须捕获。不然编译报错。来自: Android客户端
回复 使用道具 举报
(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);
}
}
回复 使用道具 举报
谢谢,,!
回复 使用道具 举报
throws使用在方法上,并且抛出的是异常类。
throw使用在方法内,抛出的是异常对象。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 这只是其中的一个方面 。

查看全部评分

回复 使用道具 举报
throws 用于抛出方法层次的异常,并且直接由些方法调用异常处理类来处理该异常,所以它常用在方法的后面。
throw 用于方法块里面的代码,比throws的层次要低,比如try...catch ....语句块,表示它抛出异常,但它不会处理它,而是由方法块的throws Exception来调用异常处理类来处理。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马