| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:急,请高手指点关于异常的问题,谢谢!
只看楼主 加入收藏
cardliujie
Rank: 1
来 自:广东深圳
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-7-30
收藏
 问题点数:0 回复次数:5 
急,请高手指点关于异常的问题,谢谢!
下面的小程序是在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在返回它第一次出现的位置,否则返回-1;当传入的数组是null的时候抛出IllegalArgumentException异常,但我把空的数组传进去的时候却是抛出NullPointerException空指针异常,请教各位大虾,如何让它抛出IllegalArgumentException异常。谢谢!

public class Test2{
    public static void main(String[] args) throws Exception{
        String ss[]={"v","a","c","a","o","v","g","f"};
        String cc="g";
        System.out.print(cc+"在下列的字符数组:");
        for(int i=0;i<ss.length;i++){
            System.out.print(ss[i]+" ");
        }
        System.out.println();
        Test3 t = new Test3();
         t.least(ss,cc);
     }
}
    
    
class Test3{
    public void least(String[] a,String s){
        int i;
        for(i=0;i<a.length;i++){
            if(a[i]==s){
                System.out.println("第一次出现的位置是:"+i);
                return;
                }
            }
        if(a[i-1]!=s){
                System.out.println("-1");
            }
        }
    }

[[it] 本帖最后由 cardliujie 于 2008-11-26 15:13 编辑 [/it]]
搜索更多相关主题的帖子: 谢谢! 
2008-11-26 15:10
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
回复 楼主 cardliujie 的帖子
用个if判断一下,如果为空就 throw new IllegalArgumentException();

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2008-11-26 16:28
sxl111
Rank: 1
等 级:新手上路
威 望:1
帖 子:55
专家分:0
注 册:2008-5-7
收藏
得分:0 
他抛什么就抓什么呗…为什么要那么麻烦?当然用throw关键字可以指定抛出异常的类型
2008-11-27 00:36
cardliujie
Rank: 1
来 自:广东深圳
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-7-30
收藏
得分:0 
回复 楼主的帖子
谢谢上面两位楼主的提点,因为这是作业题,一定要抛IllegalArgumentException才能通过,我试了楼主用if 判断然后thorw还是不行,麻烦能写得具体点吗?
2008-11-27 01:39
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
回复 第4楼 cardliujie 的帖子
public class Test2{
    private static String str[];
    public static void main(String[] args) throws Exception{
        String ss[]={"v","a","c","a","o","v","g","f"};
        String cc="j";
        System.out.print(cc+"在下列的字符数组:");
        for(int i=0;i<ss.length;i++){
            System.out.print(ss[i]+" ");
        }
        System.out.println();
        Test3 t = new Test3();
         t.least(str,cc);  //str为空,抛出IllegalArgumentException
     }
}
   
   
class Test3{
    public void least(String[] a,String s){
        if(a==null) throw new IllegalArgumentException();
        int i;
        for(i=0;i<a.length;i++){
            if(a[i]==s){
                System.out.println("第一次出现的位置是:"+i);
                return;
                }
            }
        if(a[i-1]!=s){
                System.out.println("-1");
            }
        }
    }

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2008-11-27 08:22
cardliujie
Rank: 1
来 自:广东深圳
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-7-30
收藏
得分:0 
回复 第5楼 freish 的帖子
谢谢楼主
2008-11-28 23:50
快速回复:急,请高手指点关于异常的问题,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015195 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved