黑马程序员技术交流社区

标题: 在什么情况下的异常只能try{}catch{};不能抛。 [打印本页]

作者: Alan    时间: 2013-4-20 13:30
标题: 在什么情况下的异常只能try{}catch{};不能抛。
本帖最后由 Alan 于 2013-4-20 21:51 编辑

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

作者: 何锦权    时间: 2013-4-20 13:52


如果父类或者接口,没有异常抛出时,子类覆盖出现异常,只能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();
        }
}



作者: Alan    时间: 2013-4-20 14:28
就是说子类不能产生新的异常
作者: 张洪慊    时间: 2013-4-20 15:15
补充一下,
比较特殊:
如果子类中会出现:RuntimeException或其子类的异常
这时不论父类有没有该RuntimeException或其子类的异常
子类可throw,throws.
作者: 黄玉昆    时间: 2013-4-20 21:42

如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
作者: Alan    时间: 2013-4-20 21:50
明白   十个字




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2