回 帖 发 新 帖 刷新版面

主题:一个关于自定义异常处理的小疑问,求教

题目:自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入ABC,则没有抛出异常。(只有XYZ和ABC两种输入)。

代码:
[code]

class UserDefinedException extends Exception
{
    public UserDefinedException(String str)
    {
        System.out.println("This is a "+str);
    }
}
public class ThrowsDemo {
    public static void thisthrow(String th) throws UserDefinedException
    {
        if(th.equals("XYZ"))
            throw new UserDefinedException(th);
    }
    public static void main(String args[]) //throws ArrayIndexOutOfBoundsException    
    {
        String str="";
        try
        {
            //str=String.valueOf(args[0]);
            str=args[0];
        }

        catch(ArrayIndexOutOfBoundsException e){
            try
            {
                if(str.equals("XYZ"))
                    thisthrow(str);
                else if (str.equals("ABC"))
                    System.exit(0);
            }
            catch(UserDefinedException i)
            {
                System.out.println(i);
            }
        }        
    }
}

[/code]

不知为何ArrayIndexOutOfBoundsException异常总是出现,所以加了catch处理语句,将判断输入字符串、抛出自定义异常的语句放在了内部。令我不解的是,编译、运行无错,但是结果不显示This is a XYZ,这个结果。是我的代码有为题吗?请指教!

回复列表 (共1个回复)

沙发

已經解決。在另一個帖子里,此貼關閉~

我来回复

您尚未登录,请登录后再回复。点此登录或注册