黑马程序员技术交流社区
标题: 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 |