CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请问多重try catch块和嵌套try catch块的区别是什么?

楼主tanlei_accp(爱梦薇)2006-06-03 19:26:01 在 Java / J2SE / 基础类 提问

我这里有两个程序,分别使用多重try   catch块和嵌套try   catch块实现的。但是结果却相同。使用多重try   catch块的方式不是更简洁吗?为什么还需要使用嵌套的try   catch块。它们到底有什么区别呢?那个效率更高呢?多谢多谢!  
  使用多重的例子——  
  class   NumberException   {  
          public   void   test(final   String[]   argument)   {  
   
            try   {  
                          System.out.println("传递的参数是:"+argument[0]);  
                          int   numValue   =   Integer.parseInt(argument[0]);  
                          System.out.println(argument[0]   +"的平方"   +   "是"   +   numValue   *   numValue);  
                  }   catch   (ArrayIndexOutOfBoundsException   ne)   {  
                          System.out.println("请输入数字。");  
                  }   catch   (NumberFormatException   nb)   {  
                          System.out.println("不是一个数。");  
                  }  
          }  
  }  
   
  class   MultipleCatch   {  
          public   static   void   main(String[]   args)   {  
                  NumberException   obj   =   new   NumberException();  
                  obj.test(args);  
   
    }  
  }  
  下面是多重的计算结果:  
  C:\>java   MultipleCatch  
  请输入数字。  
   
  C:\>java   MultipleCatch   aaa  
  传递的参数是:aaa  
  不是一个数。  
   
  C:\>java   MultipleCatch   12  
  传递的参数是:12  
  12的平方是144  
   
  使用嵌套的例子——  
  class   NestedException   {  
          protected   NestedException()   {  
          }  
          public   void   test(final   String[]   argument)   {  
                    try   {  
                        System.out.println("传递的参数是:   "   +   argument[0]);  
                          try   {  
                                  int   numValue   =   Integer.parseInt(argument[0]);  
   
                                  System.out.println(argument[0]   +"的平方"   +   "是"  
                                  +     numValue   *   numValue);  
   
                          }   catch   (NumberFormatException   nb)   {  
                          System.out.println("不是一个数!   ");  
   
                  }  
                }   catch   (ArrayIndexOutOfBoundsException   ne)   {  
                        System.out.println("请输入数字。");  
                }  
          }  
  }  
  class   NestedTry   {  
          protected   NestedTry()   {  
          }  
          public   static   void   main(String[]   args)   {  
                NestedException   obj   =   new   NestedException();  
                obj.test(args);  
        }  
  }  
  下面是使用嵌套输出的结果:  
  C:\>java   NestedTry  
  请输入数字。  
   
  C:\>java   NestedTry   aaa  
  传递的参数是:   aaa  
  不是一个数!  
   
  C:\>java   NestedTry   12  
  传递的参数是:   12  
  12的平方是144  
   
  到底有啥区别阿? 问题点数:20、回复次数:5Top

1 楼UnAgain()回复于 2006-06-03 19:36:57 得分 10

try   {  
                          System.out.println("传递的参数是:   "   +   argument[0]);  
                           
                          //   我在这里加一个循环。  
                          for   (int   i=0;   i<3;   i++)   {  
                                  try   {  
                                          int   numValue   =   Integer.parseInt(argument[0]);  
   
                                          System.out.println(argument[0]   +"的平方"   +   "是"  
                                                  +     numValue   *   numValue);  
   
                                  }   catch   (NumberFormatException   nb)   {  
                                          System.out.println("不是一个数!   ");  
                                  }  
                          }  
                }   catch   (ArrayIndexOutOfBoundsException   ne)   {  
                        System.out.println("请输入数字。");  
                }  
   
  如果出错的话,这段代码会出现3次,而多重只有一次。Top

2 楼tanlei_accp(爱梦薇)回复于 2006-06-03 19:41:49 得分 0

那就是说使用多重效率就更高了?那还要嵌套干什么?Top

3 楼vegetarian1(食草动物)回复于 2006-06-03 19:42:31 得分 0

aTop

4 楼vegetarian1(食草动物)回复于 2006-06-03 19:43:39 得分 0

accp?   北大青鸟??   北大菜鸟??  
   
  屁问题,拿本入门读物去看看吧!Top

5 楼UnAgain()回复于 2006-06-03 21:57:27 得分 10

呵呵,不是单纯效率高低的问题。  
   
  比如有时内层出现的问题不严重,并且你还想继续执行。Top

相关问题

关键词

得分解答快速导航

  • 帖主:tanlei_accp
  • UnAgain
  • UnAgain

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo