黑马程序员技术交流社区

标题: 面向对象 异常 不要喷 英语不是很好的我 只能用中文了 [打印本页]

作者: 13922919272    时间: 2015-1-24 16:02
标题: 面向对象 异常 不要喷 英语不是很好的我 只能用中文了
//自定义可能会出现的异常
class LanPingException extends Exception
{
        LanPingException(String a)
                {
                super(a);
        }
}
class MaoYanException extends Exception
{
        MaoYanException(String a)
                {
                super(a);
        }
}
class RenException extends Exception
{
        RenException(String a)
                {
                super(a);
        }
}
class HuanDianNaoException extends Exception
{
        HuanDianNaoException(String a)
                {
                super(a);
        }
}
class DianNao//定义电脑功能 将电脑可能出现的异常抛出
{
        public void run()throws LanPingException,MaoYanException//声明异常

                {
                int a=3;//用来表示可能出现的异常
                if(a==2)
                        throw new LanPingException("蓝屏了");//抛出异常
                if(a==3)
                        throw new MaoYanException("死机了");
                System.out.println("电脑运行");
        }
        public void chongQi()
                {
                System.out.println("电脑重启");
        }
}
class Ren //定义人的功能和初始化信息 将人可能出现的异常抛出
{
        private String nemo;
        DianNao dn=new DianNao();

        Ren(String nemo)
                {
                this.nemo=nemo;
        }
        public void xueXi()throws HuanDianNaoException,RenException
        {
                int a=2;//用来表示可能出现的异常
                if(a==1)
                        throw new RenException(nemo+"生病了");
        try
        {

                dn.run();

        }
        catch (LanPingException e)//接收异常信息并进行处理
        {
                System.out.println(e);//显示异常信息
                dn.chongQi();
               
        }
        catch (MaoYanException e)//接收了处理不了的异常,抛出连锁反应异常
        {
                System.out.println(e);
                throw new HuanDianNaoException("你该换电脑了");
        }
        System.out.println(nemo+"学习");
        }
}
class Ba
{
        public static void main(String[] a)
                {
                Ren r=new Ren("张三");
                try
                {
                        r.xueXi();
                }
                catch (RenException y)
                {
                        System.out.println("去治疗吧 不要学习了");
                }
                catch(HuanDianNaoException h)
                {
                        System.out.println(h);
                        System.out.println("没钱啊");
                }
               
        }
       
}


作者: Dragon_Free    时间: 2015-1-24 16:49
显示异常信息的话,直接实例化异常对像,里面传入一个信息,比较好吧?
作者: 13922919272    时间: 2015-1-24 17:12
Dragon_Free 发表于 2015-1-24 16:49
显示异常信息的话,直接实例化异常对像,里面传入一个信息,比较好吧?

你说的是toString
作者: Dragon_Free    时间: 2015-1-24 17:16
13922919272 发表于 2015-1-24 17:12
你说的是toString

你都继承 了Exception了,当然会有一个super(msg)这句在啊,直接有异常时,throw new 自定义异常类(“异常信息”)就可以了。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2