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使用在函数内,后面跟异常对象
*/ |