异常在父类覆盖中的体现

  • 子类在覆盖父类,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类异常或该异常的子类。
  • 原因:。。。。。
  • 如果在函数内部真的出现了与父类的异常无关的异常,那只能就地解决,千万不能抛;抛了之后,编译都不通过!
  • 如果父类或者接口的方法中没有异常抛出,那么子类也一定不能有异常抛出!
  • 练习:
   /*
有一个长方形。
都可以获取面积。对于面积如果出现非法的数值,视为是获取面积出现了问题。
问题通过异常表示。
现有对这个程序进行基本设计。
*/
interface Shape{
    void getArea();
}
class NoValueException extends Exception{
    NoValueException(String message){
        super(message);
    }
}
class Rec implements Shape{
    private int len, wid;

    Rec(int len, int wid) throws NoValueException{
        //以往我们为了不让用户不输入负数,通常会在这加一个if,else,该方法非常不可取
        //这个导致,程序执行代码和问题处理代码结合太紧密,可读性太差!!!
        //正确处理:用异常处理。
        if(len <= 0 || wid <= 0)
            throw new NoValueException("出现非法值");
        this.len = len;
        this.wid = wid;
    }
    public void getArea(){
        System.out.println(len*wid);
    }
}
class ExceptionTest1{
    public static void main(String[] args){
        
        try{
            Rec r1 = new Rec(1,0);
            r1.getArea();    //上面语句出现异常,下面的语句就不会在执行,程序会处理该异常,然后结束。
        }
        catch(NoValueException e){
            System.out.println(e.toString());
            System.out.println("请重新输入");
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、多态 1. 概述 理解:多态可以理解为事物存在的多种体(表)现形态。例如:动物中的猫和狗。猫这个对象对应的是猫...
    陈凯冰阅读 2,750评论 0 1
  • 引言 在程序运行过程中(注意是运行阶段,程序可以通过编译),如果JVM检测出一个不可能执行的操作,就会出现运行时错...
    Steven1997阅读 7,282评论 1 6
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,150评论 0 2
  • 同别人交往时要记住,你不是同逻辑动物交往,而是同有情绪的人交往。——戴尔.卡耐基 如果把人想象成一部手机,情绪就是...
    桃桃小夭阅读 3,831评论 0 4
  • 发年终,是要这样熬着一天一天,还是一无所有地走了,真心不知道!
    付知阅读 1,643评论 0 0

友情链接更多精彩内容