第二遍扫盲,居然扫到了个知识点
毕老师说,如果父类和接口的方法中没有异常抛出,那么子类在覆盖该方法时也不可以抛出异常,如果子类方法发生了异常,就必须进行try处理,而不能抛。
关于这句话好有疑问,我编了个程序,发现了问题
问题:下面这段程序里,父类没有抛出异常,子类覆盖了方法仍然可以抛出异常啊,而且子类发生了异常,我也没有try,而是抛了啊,最后运行也是对的。求这句话的正确解释。
- class FuShuException extends Exception //这里我们自定义了一个FuShuException异常,具体内容并没有写出来
- {}
- class wohao
- {
- public int show(int a)
- {
- return a;
- }
- }
- public class nihao extends wohao
- {
- public static void main(String[] args)throws FuShuException
- {
- wohao d= new wohao();
- int x=d.show(-4);
- if (x<0)
- throw new FuShuException();
- System.out.println(x);
- }
- }
复制代码
|