A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 完美恋爱 高级黑马   /  2013-11-27 17:46  /  1293 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 完美恋爱 于 2013-11-27 20:18 编辑

class FuShuException extends Exception
{
        FuShuException()
        {
                super();
        }
        
        FuShuException(String message)
        {
                super(message);
        }
}

class Chu
{
        int chu(int a, int b)throws Exception,FuShuException
        {
                if(b < 0)
                        throw new FuShuException("被除数为零啦!");
                return a/b;
        }
}

class Demo
{
        public static void main(String[] args)
        {
                Chu c = new Chu();
                try
                {
                        int num = c.chu(3,-1);
                        System.out.println("num = "+num);
                }
                catch(Exception e)
                {
                        
                }
                catch(FuShuException e)
                {
                        System.out.println(e.toString());
                }
        }
}

这段代码哪里写错啦?为什么错误提示是:已捕捉到异常 FuShuException

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

5 个回复

倒序浏览
你写了2个catch

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
  1. throws Exception,FuShuException
复制代码
你为什么抛了Exception又抛FuShuException呢?  FuShuException是Exception是子类,抛了Exception就不用抛子类异常了!
回复 使用道具 举报
  catch(Exception e)
                {
                        
                }
                catch(FuShuException e)
                {
                        System.out.println(e.toString());
                }
这段代码有问题吧,DuShuException是Exception的子类
,可以从你的错误信息里看:已捕捉到异常 FuShuException
已经捕捉到了,然后又多了一个捕捉过程,所以会出错;

如果是不同类型的异常,比如说会出现IOException和你这个FushuException会同时出现的话,可以两次catch,因为他们之间没有谁继承谁的影响。
希望帮到你


回复 使用道具 举报

我是故意写两个的
回复 使用道具 举报
潘际昌 发表于 2013-11-27 18:53
你为什么抛了Exception又抛FuShuException呢?  FuShuException是Exception是子类,抛了Exception就不用抛 ...

我就是想验证一下效果,正常按我这么写应该是编译能通过的,但是我却编译失败了,我想知道为什么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马