day10-2021-12-13

湖南Java

面向对象04 异常 异常解决方案 抽象类 面向抽象编程

1.异常

1.1概念

异常是一些用来封装错误信息的对象
它由异常的类型、提示信息、报错的行号提示三部分组成

1.2异常的继承结构

day10-2021-12-13

1.3异常的处理方式

当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出
当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常
捕获方式:
day10-2021-12-13

抛出方式:
对于不想现在处理或者处理不了的异常可以选择向上抛出
方式:在方法上设置异常的抛出管道,即:
在可能会发生异常的方法上添加代码:
throws 异常类型
例如:void method1 throws Exception1,Exception2,Exception3{}
TIPS:方法上有默认的异常管道:RuntimeException

private static void method3() throws ArithmeticException,InputMismatchException,Exception{ }

private static void method3() throws Exception{ }

  • 如果一个方法抛出了异常,那么谁来调用这个方法,谁就需要处理这个异常,这里的处理也有两种方案:捕获解决 或者 继续向上抛出
  • 不能直接把异常抛给main(),因为调用main()是JVM,没人解决了,该报错还报错,所以我们一般会在main()调用之前将异常解决掉

2.抽象

2.1抽象类

  1. 被abstract修饰的方法是抽象方法,抽象方法没有方法体
  2. 一旦一个类有抽象方法,这个类必须被声明成抽象类
  3. 如果一个子类继承了一个抽象父类,有两种解决方案:
    1)抽象子类:不实现/实现一部分抽象父类中的抽象方法
    2)普通子类:实现抽象父类中全部的抽象方法
  4. 抽象类不能实例化
  5. 抽象类有构造函数的,但是,不是为了自己使用,而是为了子类super()调用
  6. 抽象类可以定义成员变量/成员常量
  7. 抽象类可以定义全普/全抽/半普半抽
  8. 如果一个类不想被外界实例化,可以把这个类声明成抽象类
  9. abstract关键字不可以与private static final共用
上一篇:day10-字符串作业


下一篇:Java(day10)接口、内部类