第9天:自定义异常

1.自定义异常的意义:

尽管java虚拟机提供了各种的异常种类,但是面对多样的业务需求时我们自定义一些规则(例如年龄不能为负数),这时我们就需要来自定义一些异常。

自定义异常内容主要包括
1,自定义异常申明(必须继承系统原有的异常类,)

class FuShuException  extends Exception  //申明一个自定义异常
{   FuShuException(String  msg){
        super(msg);
    }
}

2, 自定义异常信息的包装;(异常信息:分母不能为负)

if( b<0)
        throw new FuShuException("异常信息:分母不能为负"

在产生异常时只有两种处理方法;
1. 使用try{ }catch{ }finlly{ }直接处理,
2. 使用throws throws 抛出,让上一级处理,

需要注意的是;
在某些情况时对抛出有限制;
比如在由继承关系时,子类只能抛出父类继承的异常,或者异常的子异常,
如果父类继承多个异常,那么子类只能抛出父类异常的子集。

如果父类没有抛出异常,那么子类也不能抛出异常,只能使用try{ }catch{ }在方法内直接处理。

finally{};
try{ }catch{ }finlly{ }中的finally{}中的程序是无论程序是否异常都会执行的语句,其作用为断开数据库等操作从而来释放资源,

在开发过程中因为要考虑程序的健壮性所以在catch完所有可能的异常后通常会加一个catch(Exception e)用于接受可能遗漏的异常。

下面是根据学习教程写的一个自定义异常练习。
//需求 分数中除了系统默认的分母不能为零外 再自定义一个分母不能为负的异常 FuShuException

public class ExceptionDemo {

    public static void main(String[] args) {
        Demo2 ex=new Demo2();
        try{
            int c= ex.div(4, -1);
        System.out.println("c="+c);
        }catch(FuShuException e)
          {
            System.out.println(e.toString());
            System.out.println("除数出现负数啦~~");
          }
        System.out.println("程序结束");
        }
    }
class Demo2{
    int div(int a,int b) throws FuShuException{   /*thorws 用来接收throw抛出的异常*/
    if( b<0)
    throw new FuShuException("异常信息:分母不能为负")//新建一个自定义异常类并且赋予异常信息。
        return a/b;
    }
}
class FuShuException  extends Exception  //申明一个自定义异常
{   FuShuException(String  msg){
        super(msg);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值