湖南Java
面向对象04 异常 异常解决方案 抽象类 面向抽象编程
1.异常
1.1概念
异常是一些用来封装错误信息的对象
它由异常的类型、提示信息、报错的行号提示三部分组成
1.2异常的继承结构
1.3异常的处理方式
当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出
当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常
捕获方式:
抛出方式:
对于不想现在处理或者处理不了的异常可以选择向上抛出
方式:在方法上设置异常的抛出管道,即:
在可能会发生异常的方法上添加代码:
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抽象类
- 被abstract修饰的方法是抽象方法,抽象方法没有方法体
- 一旦一个类有抽象方法,这个类必须被声明成抽象类
- 如果一个子类继承了一个抽象父类,有两种解决方案:
1)抽象子类:不实现/实现一部分抽象父类中的抽象方法
2)普通子类:实现抽象父类中全部的抽象方法 - 抽象类不能实例化
- 抽象类有构造函数的,但是,不是为了自己使用,而是为了子类super()调用
- 抽象类可以定义成员变量/成员常量
- 抽象类可以定义全普/全抽/半普半抽
- 如果一个类不想被外界实例化,可以把这个类声明成抽象类
- abstract关键字不可以与private static final共用