finally 代码块:定义一个一定执行的代码.通常用于关闭资源.
catch是用于处理异常,如果没有catch代表异常没有被处理过,如果该异常是检测时异常,必须声明.
异常在子父类异常覆盖中的体现:
1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类异常或该异常的子类.
2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集.
3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常.
如果子类方法发生了异常,就必修要进行try处理,否则不能运行.
- /*
- 有一个园和长方形.获取面积.对于面积如果出现非法数值,视为获取面积出现问题,问题通过异常表示.
- 1,先对求面积程序进行设计.
- 2,对长方形长宽异常分析,并以RuntimeException方式抛出
- 3,对圆输入半径异常分析,并以RuntimeException方式抛出
- */
- */
- class NoValueException extends RuntimeException//创建无效输入的异常情况.
- {
- NoValueException(String message)
- {
- super(message);
- }
- }
- interface Shape//创建接口
- {
- void getArea();
- }
- class Rec implements Shape//创建长方形类
- {
- private int len,wid ;
- Rec(int len, int wid)
- {
- if (len <= 0 || wid <= 0)
- throw new NoValueException("出现非法值");//非法长和宽,运行异常抛出
- this.len=len;
- this.wid=wid;
- }
- public void getArea()//定义面积计算方法
- {
- System.out.println(len*wid);
- }
- }
- class Circle implements Shape//创建圆的类
- {
- private int radius;
- public static final double PI = 3.14;
- Circle (int radius)
- {
- if (radius <= 0)
- throw new RuntimeException("圆半径非法");//非法半径,运行异常抛出
- this.radius=radius;
- }
- public void getArea()
- {
- System.out.println(radius*radius*PI);
- }
- }
- class ExceptionTest//主函数:创建对象并调用对应面积计算方法.
- {
- public static void main(String[] args)
- {
- Rec r = new Rec(3,4);
- r.getArea();
- Circle c = new Circle(5);
- c.getArea();
- System.out.println("over");
-
-
- }
- }
复制代码
|
|