异常的使用

class Test
{
public int devide(int x,int y) throws DevideByMinusException,ArithmeticException //ArithmeticException为算术异常
//表示这个方法可能会产生异常,可以抛出多个异常,如果使用这个方法就一定要用try catch
{
if(y<0)
throw new DevideByMinusException("devisor is "+y); //此处为throw不是throws
return x/y;
}


//当被继承类的方法被重写时,如果这个方法抛出异常,则重写时也必须抛出异常,且应与父类方法抛出异常一致,或是它的子异常(子集)
class SubTest extends Test
{
public int devide(int x,int y) throws DevideByMinusException  //或者是DevideByMinusException,ArithmeticException
{
return x/y;
}
}


class DevideByMinusException extends Exception //编写异常类DevideByMinusException(负除数异常)继承Exception类
{
public DevideByMinusException(String msg) //Exception类中有String message这个成员,被继承了
{
super(msg); //调用父类中的构造函数
}
}


class TestException
{
public static void main(String[] args)
{
try
{
new Test().devide(2,-1);
return;
} //可以catch多个异常
catch(ArithmeticException e)
{
System.out.println("program is running into ArithmeticException");
e.printStackTrace();
return;
}
catch(DevideByMinusException e)
{
System.out.println("program is running into DevideByMinusException");
e.printStackTrace();
return;
}
catch(Exception ex) //此异常应放在所有异常的后面,否则所有异常都会被它捕获
{
System.out.println(ex.getMessage());
}
finally //不管程序如何变化,finall中的语句都是要被执行的,如前面某个位置有return,如果有System.exit(0)语句,finally不执行
{
System.out.println("finally");
}
System.out.println("program keep going!");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值