黑马程序员技术交流社区
标题: 关于Throw、Throws和Throwable的区别 [打印本页]
作者: 谢威 时间: 2013-3-22 22:33
标题: 关于Throw、Throws和Throwable的区别
本帖最后由 谢威 于 2013-3-23 07:35 编辑
请问Throw、Throws和Throwable之间的区别是什么,举例说明。
作者: 彭颖 时间: 2013-3-22 22:37
异常:
是对问题的描述。将问题进行对象的封装。
异常体系:
Throwable
∨
Error
∨
Exception
∨
RuntimeException
特点:异常体系中的所有类 以及建立的对象都具备可抛性。
也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。
throw和throws的用法:
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号可开。
原则:
1、处理方式:try或者throws。
2、调用到抛出异常的功能时,抛出几个,就处理几个。
一个try对应多个catch
3、多个catch,父类的catch放到最下面。
4、catch内需要定义针对性的处理方式,不要简单的定义printStackTrace,输出语句。
也不要不写。当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
eg:- try{
- throw new AException();
- }catch(AException e){
- throw e;
- }
复制代码
作者: freeboyhrk 时间: 2013-3-22 22:51
Throw定义在函数内,用于抛出异常对象。
如:
class Circle implement Shape
{
private int radius;
public static final PI=3.14;
Circle(int radius)
{
if(radius<=0)
throw new NoValueException("非法");
this.radius=radius;
}
}
...
Throws定义在函数上,用于抛出异常类,可抛出多个,用逗号隔开。
如:
public class Shoot
{
static void pop() throws NegativeArraySizeException
{
int [] arr = new int[-3];
}
public static void main(String[] args)
{
try
{
pop();
}
catch (NegativeArraySizeException e)
{
System.out.println("pop()方法抛出的异常");
}
}
}
Throwable是异常体系,其中包括Error,Exception。
作者: 小路飞 时间: 2013-3-22 22:57
本帖最后由 侯国奇 于 2013-3-22 22:59 编辑
Throwable是异常体系的统称,其中的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作,并且只有异常体系具备这个特点。
而throw和throws的区别之处在于:
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
PS:throw语句单独存在时后面不能再跟语句,因为执行不到;和return/break/continue一样。
举例就不必了吧,视频里多得是~
作者: wangchao1686 时间: 2013-6-13 11:46
本帖最后由 wangchao1686 于 2013-6-13 11:59 编辑
throw和throws的区别
区别1:
throw 是语句抛出一个异常对象;
throws 定义在方法上,是方法上抛出异常类,把异常抛给这个函数的调用者。
区别2:
throw真能抛出一个异常对象。
thorws可以抛出多个异常类,多个异常类之间用逗号隔开。
Throwable类是所有异常和错误的超类,有两个子类两个子类Error和exception,分别表示错误和异常。 在java中任何异常(广义)都是继承自Throwable的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |