黑马程序员技术交流社区

标题: 异常_05 [打印本页]

作者: Tauruszzy    时间: 2015-5-9 13:42
标题: 异常_05
class Demo
{
        int div(int a,int b)throws Exception//throws Exception表示这段程序可能会有问题
        {
                return a/b;
        }
}

class ExceptionDemo
{
        public static void main(String[]args)
        {
                Demo d=new Demo();
                int x =d.div(4,1);//程序运行到此处会给出,如下提示:未报告的异常错误,必须对其进行捕捉或
                                          //声明,表明解决的办法有两种:捕捉,声明。
                System.out.println("over"+x);
        }
}
-------------------------------------
/*
声明的解决方法如下:在调用声明了throws Exception方法的函数上也声明throws Exception,表示不做处理,也抛出
*/
class Demo
{
        int div(int a,int b)throws Exception
        {
                return a/b;
        }
}

class ExceptionDemo
{
        public static void main(String[]args)throws Exception//声明方法在此处
        {
                Demo d=new Demo();
                int x =d.div(4,1);
                System.out.println("over"+x);
        }
}
备注:程序能够通过编译,并执行,用声明的方法解决了此问题。
------------------------------------------------------------------------------------------------------------

class Demo
{
        int div(int a,int b)throws Exception
        {
                return a/b;
        }
}

class ExceptionDemo
{
        public static void main(String[]args)throws Exception
        {
                Demo d=new Demo();
                int x =d.div(4,0);//把1变为0,编译通过,运行出现问题,即执行到此处把问题抛给了虚拟机
                System.out.println("over"+x);
        }
}

------------------------------------------------------------------------------------------------------------
/*
第二种解决方法:捕捉
*/
class Demo
{
        int div(int a,int b)throws Exception
        {
                return a/b;
        }
}

class ExceptionDemo
{
        public static void main(String[]args)
        {
                Demo d=new Demo();
                try//程序没有报错,是因为此处进行了捕捉
                {
                        int x =d.div(4,1);//因为没有错误所以程序运行了下面的输出语句,当1变为0时这里下面的输           
                                                  //出语句不执行
                        System.out.println("x="+x);
                }
                catch (Exception e)//为1时没有错误,此处不执行,当1变为0时,这里执行
                {
                        System.out.println(e.toString());
                }
                System.out.println("over");//执行
        }
}


以上就是在有可能出现异常的方法声明了throws Exception后的两种处理方法,建议使用捕捉方法,因为声明方法没有对问题进行处理,显然有点不负责任。
作者: 知来者之可追    时间: 2015-5-9 19:35
是的。。
作者: dengxing    时间: 2015-5-9 20:11
赞!!!!!
作者: 快乐Anne    时间: 2015-5-9 20:21
视频当时看的有点迷糊,现在明白了,不错!
作者: brouse    时间: 2015-5-9 20:58
现在看还是很乱呀
作者: bboyXiaoNuo    时间: 2015-5-9 21:16
看来看去不知道想表达什么啊。。。。。。
作者: 397543420    时间: 2015-5-9 22:07
看来看去不知道想表达什么啊。。。。。。不过看起来很屌的样子
作者: 0416-孙磊    时间: 2015-5-9 22:10
异常还没学...
作者: 蓝色太阳    时间: 2015-5-9 22:18
不错~谢谢分享!!




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