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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Alan 于 2013-4-20 21:51 编辑

在什么情况下的异常只能try{}catch{};不能抛。
求高手概括一下,有哪些情况。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览


如果父类或者接口,没有异常抛出时,子类覆盖出现异常,只能try不能抛

下面用代码来验证这个理论

class Fu
{
        public void test()
        {
                System.out.println("Fu");
        }
}
class Zi extends Fu
{
       
        public void test() //这个方法抛出的异常,只能try,catch处理,不能抛
        {
                try
                {
                        System.out.println("Zi");
                        throw new Exception();
                }
                catch (Exception e)
                {
                }
        }
        /*  这样子写会是编译错误
        public void test() throws Exception
        {
                System.out.println("Zi");
                throw new Exception();
        }
        */
}
class Demo
{
        public static void main(String[] args)
        {
                Fu f = new Zi();
                f.test();
        }
}


评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
就是说子类不能产生新的异常
回复 使用道具 举报
补充一下,
比较特殊:
如果子类中会出现:RuntimeException或其子类的异常
这时不论父类有没有该RuntimeException或其子类的异常
子类可throw,throws.
回复 使用道具 举报

如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
明白   十个字
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马