黑马程序员技术交流社区

标题: 关于catch的第二个问题 [打印本页]

作者: 小洋人最happy    时间: 2012-11-21 15:33
标题: 关于catch的第二个问题
catch (Exception e)  
                {
                       
                        System.out.println(e.toString());

                }

直接这样不是很简单吗?还需要挨着定义吗,比如下面
catch (ArithmeticException e)
                {
                        System.out.println(e.toString());
                        System.out.println("被零除啦");
                }       
               
                catch (ArrayIndexOutOfBoundsException e)
                {
                        System.out.println(e.toString());
                        System.out.println("角标越界啦");
                }       

这样会不会很麻烦呢

作者: 崔利鹏    时间: 2012-11-21 15:48
他们两个捕获的异常是不一样的,ArithmeticException 是一般性错误,像你说的除数是0了,但是ArrayIndexOutOfBoundsException 是数组越界问题。
作者: filter    时间: 2012-11-21 16:41
2楼 +1
exception e处理的是一般异常,ArithmeticException 和ArrayIndexOutOfBoundsException 是exception的子类,功能不一样
另外你代码中的局部变量e要改一下,两个不能一样的,不然编译报错
作者: 王得新    时间: 2012-11-21 19:01
       catch (Exception e)  
      {
                        
               System.out.println(e.toString());

        }
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
        catch (ArithmeticException e)
        {
                   System.out.println(e.toString());
                   System.out.println("被零除啦");
                  // Log.e();
        }        
               
       catch (ArrayIndexOutOfBoundsException e)
       {
                    System.out.println(e.toString());
                    System.out.println("角标越界啦");
        }        
关于异常方面的知识这里就不说了,LZ查下资料就可以了解下,下面针对LZ的提问给个回答

lz的第一种抛出异常的方式比较广泛,如果真的出错的话,让别人调试起来很麻烦,其实在catch语句中专门为企业写代码的会在里面

以Log日志的形式保存到特定文件夹下的文档里,这样以后你的程序给别人用时,出错的话别人才好调试。

而第二种方式是最好的,因为抛出的异常很具体,如果真的出错,查看文档的话才会方便,才会具体到那个错






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