java异常体系2

时间:2020-12-04 20:19:42
/**
*@author:StormMaybin
*@Date:20160427
*@<description>练习</description>
*/
/*
因为项目中会出现特有的问题而这些问题未被java所描述
所以对于这些问题进行自定义异常封装
*/
/*
当在函数内部出现了throw抛出异常对象的话,那么必须
要给对应的处理动作,要么在try catch处理,要么在函数内部
发现打印的结果只有异常的名称,却没有异常的信息
因为自定义的异常未定义信息

如何定义异常信息呢?
因为父类把异常信息的操作已经完成了,所以我们只要在构造时候将信息传递给
父类的构造函数通过super;
自定义必须是自定义类继承Exception类
继承Exception原因:
异常体系有一个特点,因为一次啊很难过类和异常对象
必须被抛出,都具有可抛性这个可抛性是Throwable这个体系
独有的特点
*/
class FushuException extends Exception
{
    private int value;
    FushuException (String message,int value)
    {
        super (message);
        this.value = value;
    }
    public int getValue()
    {
        return value;
    }
}
class Demo
{
    int div(int a, int b) throws Exception
    {
        if (b < 0)
        {
            //手动抛出自定义异常
            throw new FushuException("/ by fushu",b);
        }
        return a/b;    
    }
}
class ExceptionDemo1
{
    public static void main(String[] args) throws Exception
    {
        Demo d = new Demo();
        try
        {
            int x = d.div(4,-1);
            System.out.println (x);
        }
        catch (FushuException e)
        {
            System.out.println (e.toString());
            //System.out.println ("暂时不支持负数除法");
            System.out.println("错误的负数是"+e.getValue());
        }
    }
}