A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Tauruszzy 中级黑马   /  2015-5-9 17:36  /  222 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


/*
自定义异常
*/
class FuShuException extends Exception
{
        private String message;//自定义输出信息
        FuShuException(String message)
        {
                this.message=message;
        }
        public String getMessage()
        {
                return message;
        }
}

class Demo
{
        int div(int a,int b)throws FuShuException
        {
                if(a<0)
                        throw new FuShuException("出现错误了!");
            return a/b;
        }       
}

class ExceptionDemo
{
        public static void main(String[] args)
        {
                Demo d=new Demo();
                try
                {
                        int x=d.div(-4,1);
                    System.out.println("x="+x);
                }
                catch (FuShuException e)
                {
                        System.out.println(e.toString());
                }
               
                System.out.println("over");
        }
}
程序结果:
FuShuException:出现错误了!
over
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/*
但是上面的自定义语句太麻烦了,我们可以修改成如下语句
*/
/*
自定义异常
*/
class FuShuException extends Exception
{
        FuShuException(String message)
        {
                super(message);//替换成这句super()语句
        }
}

class Demo
{
        int div(int a,int b)throws FuShuException
        {
                if(a<0)
                        throw new FuShuException("出现错误了!-------------");
            return a/b;
        }       
}

class ExceptionDemo
{
        public static void main(String[] args)
        {
                Demo d=new Demo();
                try
                {
                        int x=d.div(-4,1);
                    System.out.println("x="+x);
                }
                catch (FuShuException e)
                {
                        System.out.println(e.toString());
                }
               
                System.out.println("over");
        }
}
程序正常运行
备注:因为父类Exception中已经把异常信息操作都完成了。所以子类只要在构造时,将异常信息传递给父类通过super语句就可以直接通过getMessage方法获取自定义的异常信息。下面的代码就解释了这个道理

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
class Person
{
        String name;
    Person(String name)
        {
                this.name=name;
        }
        public String getName()
        {
                return name;
        }
}

class Student extends Person
{
        Student(String name)
        {
                super(name);
        }
}

class ExceptionDemo
{
        public static void main(String[] args)
        {
                Student d=new Student("lisi");
                System.out.println(d.getName());
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马