throws等于是告诉编译器,你的方法可能会出现什么异常,到底会不会出现,什么时候出现,你不知道,你只是跟编译器打声招呼,告诉它可能有问题,到时真出问题了,也别紧张;它是用在函数开头的,也就是函数开始之前就要声明了。
throw就是真的要抛出一个异常实体,等于是跟编译器说,我这里有个异常(与上面的区别是,这个异常是你确切知道是什么异常),你已经神机妙算的知道了这里肯定会发生这个问题,只是你不想自己动手用try{} catch{}处理(或者不知道怎么处理),所以你就要把异常扔出去,让其他使用你这个方法的人处理这个问题去。它是用在函数体中的;
请看下面的代码实例
class Math
{
public int div(int i,int j) throws Exception //本方法中不处理异常
{
int temp = i / j; //此处有可能产生异常
retrun temp;
}
}
public class ThrowDemo
{
public static void main(String args[])
{
Math m = new Math();
try //因为有throws,不管是否有异常,都必需处理
{
System.out.println(m.div(10,2));
}
catch(Exception e) //如果有异常,在此处捕捉
{
System.out.println(e); //打印异常
}
}
}
2.throw,可以直接使用throw抛出一个异常,比如
public class ThrowDemo
{
public static void main(String args[])
{
try
{
throw new Exception("抛出自己的异常"); //自己抛出异常
}
catch(Exception e)
{
System.out.println(e); //打印异常
}
}
} |