黑马程序员技术交流社区
标题:
关于throw和throws
[打印本页]
作者:
Running
时间:
2014-6-19 23:17
标题:
关于throw和throws
throw和throws这两个应该不相同吧,他们有什么区别,我一直分不清楚。
作者:
sgs_gzy
时间:
2014-6-19 23:27
throw和throws的用法:
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
作者:
nxp1986
时间:
2014-6-20 00:08
同求这个问题 也是刚学习到这里
作者:
cat73
时间:
2014-6-20 00:21
一个修饰方法 用于告诉调用者这个方法可能抛出什么异常
一个用于抛出异常
作者:
Alan_Kwan
时间:
2014-6-20 01:36
个人觉得一个是声明,一个是实际抛出。
throws是声明会抛出XX异常
throw是抛出异常
作者:
陈鹏83
时间:
2014-6-20 08:34
1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。
2、throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。
作者:
阿布Yocan
时间:
2014-6-20 11:55
throw 放在函数内,抛出异常对象
throws 反正函数上,抛出异常类
作者:
姿_`态
时间:
2014-6-20 13:42
class Test
{
public static void main(String[] args)
{
Demo1 d1 = new Demo1();
Demo2 d2 = new Demo2();
Demo3 d3 = new Demo3();
d1.div(4,2);
d2.div(4,0);
d3.div(4,0);
}
}
class Demo1
{
private int a,b;
int div(int a,int b)//throws Exception//用于声明函数有可能会出现异常,调用者要么抛,要么try
{
this.a=a;
this.b=b;
return a/b;
}
}
class Demo2
{
private int a,b;
int div(int a,int b)
{
this.a=a;
this.b=b;
if(b==0)
{
throw new RuntimeException();//抛出运行时异常,函数上可以不声明,就是让程序停下来我们修改。
}
return a/b;
}
}
class Demo3
{
private int a,b;
int div(int a,int b)throws Exception
{
this.a=a;
this.b=b;
if(b==0)
{
throw new Exception();//抛出Exception异常,函数上一定要声明,调用者要么抛,要么try
}
return a/b;
}
}
/*
对于非RuntimeExcepton,如果在函数内抛出了异常throw new Exception,那么在函数上必须声明,
声明方式throws Exception,那么这个函数的调用者要么抛要么try、这是编译时异常。
对于RuntimeExcepton,如果在函数内抛出了异常throw new Exception,那么在函数不必须声明,
,这个错误,是由于程序使用者,乱传参数造成的,就是要让程序停下来,修改,这是运行时异常
throws使用在函数上,后面跟异常类,可以跟多个,用逗号隔开
throw使用在函数内,后面跟异常对象
*/
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2