- class Test
- {
- int x=5;
- public double div(int a,int b)
- throws ArithmeticException,ArrayIndexOutOfBoundsException
- {
- //if(b==0)
- //throw RuntimeException("除数为0");
- return a/b;
- }
- class inner
- {
- int x=8;
- void method()
- {
- System.out.println(x);
- }
- }
- }
- public class Demo
- {
- public static void main(String[]agrs)
- {
- Test t=new Test();
- new Test().new inner().method();
- double s=t.div(5,1);//试着把1改成0 试试?
- System.out.println(s);
- }
- }
- //首先楼主,你就没有正真理解throw和throws两者的真正用法,你在div方法后面用throws声明的抛出了两个异常
- //类,这个只是作为声明并不是创建异常对象,我们用try。。catch。。来捕获异常对象并处理这个异常对象
- //在你的Demo中你给dic传入的值分别是5和1,5/1它并没有违反算术规则,因此不会产生算术异常对象,既然没有
- //产生对象所以你在Demo中有没有把 double s=t.div(5,1);放在try。。catch中都无所谓啊!!
- //如果你把1改成0它就会抛出算术异常,那么你的代码就会报错了,当然我们也可以通过throw来抛出自定义异常对象
- //如果我这么说 你还不明白那么可以好好看书 或把疑惑再次指出 我好解答
复制代码 |