CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [问答] 哪位高手帮我分析一下这个java程序的执行结果
CNET开发专家团
专家组
Rank: 10Rank: 10Rank: 10



UID 259939
精华 1
积分 53
帖子 4
威望 -2
ZD币 16 元
阅读权限 255
注册 2007-11-9
状态 离线
  楼主
发表于 2008-3-21 13:31  资料  个人空间  短消息  加为好友 
开发者在线

哪位高手帮我分析一下这个java程序的执行结果

程序是这样的:
<br>public class CatchWho2 {
<br>    public static void main(String[] args) {
<br>        try {
<br>            try {
<br>                throw new ArrayIndexOutOfBoundsException();
<br>            }
<br>            catch(ArithmeticException e) {
<br>                System.out.println(
<br>                    "ArrayIndexOutOfBoundsException" +
<br>                    "/内层try-catch");
<br>            }
<br>
<br>            throw new ArithmeticException();
<br>        }
<br>        catch(ArithmeticException e) {
<br>            System.out.println("发生ArithmeticException");
<br>        }
<br>        catch(ArrayIndexOutOfBoundsException e) {
<br>            System.out.println(
<br>                "ArrayIndexOutOfBoundsException" +
<br>                "/外层try-catch");
<br>        }
<br>    }
<br>}
<br>为什么运行结果只有”ArrayIndexOutOfBoundsException/外层try-catch”这一句,而没有得到以下这一句”发生ArithmeticException”?外层try的内部,不也丢出了ArithmeticException()这个异常吗,紧接着的catch怎么没捕捉到它啊?
<br>另外,我想弄清楚try...catch嵌套中里层的try与外层的try,前面的catch和后面的catch它们的捕捉顺序关系是怎样的.大哥们,最好先帮我详细分析一下我的程序,然后再能举一些这方面的例子.
<br>再补充一下,最后两个catch调一下顺序,运行结果还是只有”ArrayIndexOutOfBoundsException/外层try-catch”这一句.以下两个改动的程序为什么都不能良好的运行呢?
<br>①public class CatchWho2 {
<br>    public static void main(String[] args) {
<br>        try {
<br>            
<br>            try {
<br>                throw new ArrayIndexOutOfBoundsException();
<br>            }
<br>            catch(ArithmeticException e) {
<br>                System.out.println(
<br>                    "ArrayIndexOutOfBoundsException" +
<br>                    "/内层try-catch");
<br>            }
<br>
<br>             throw new ArithmeticException();
<br>        catch(ArithmeticException e) {
<br>            System.out.println("发生ArithmeticException");
<br>        }
<br>}
<br>        
<br>        catch(ArrayIndexOutOfBoundsException e) {
<br>            System.out.println(
<br>                "ArrayIndexOutOfBoundsException" +
<br>                "/外层try-catch");
<br>        }
<br>   
<br>
<br>     }
<br>}
<br>②public class CatchWho2 {
<br>    public static void main(String[] args) {
<br>        try {
<br>            
<br>                throw new ArrayIndexOutOfBoundsException();
<br>            
<br>            catch(ArithmeticException e) {
<br>                System.out.println(
<br>                    "ArrayIndexOutOfBoundsException" +
<br>                    "/内层try-catch");
<br>            }
<br>
<br>            throw new ArithmeticException();
<br>        }
<br>        catch(ArithmeticException e) {
<br>            System.out.println("发生ArithmeticException");
<br>        }
<br>        catch(ArrayIndexOutOfBoundsException e) {
<br>            System.out.println(
<br>                "ArrayIndexOutOfBoundsException" +
<br>                "/外层try-catch");
<br>        }
<br>    }
<br>}
<br>小弟先对那些帮我解决问题的好心人们表示感谢啊?



这是一篇来自百度知道的问题

顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
Admin
管理员
Rank: 9Rank: 9Rank: 9
Member


UID 39783
精华 3
积分 24256
帖子 312
威望 5743
ZD币 3219 元
阅读权限 255
注册 2004-2-5
状态 离线
  沙发
发表于 2008-3-21 13:31  资料  个人空间  短消息  加为好友 
我怀疑你是复制的吗~?



这是一篇来自百度知道的问题

顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
CNET开发专家团
专家组
Rank: 10Rank: 10Rank: 10



UID 259939
精华 1
积分 53
帖子 4
威望 -2
ZD币 16 元
阅读权限 255
注册 2007-11-9
状态 离线
  板凳
发表于 2008-3-21 13:31  资料  个人空间  短消息  加为好友 
------------



这是一篇来自百度知道的问题

顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 



当前时区 GMT+8, 现在时间是 2009-7-4 14:52

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.064447 second(s), 4/3 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版