A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 695010894 中级黑马   /  2016-3-28 16:56  /  698 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

finally 代码块:定义一个一定执行的代码.通常用于关闭资源.
catch是用于处理异常,如果没有catch代表异常没有被处理过,如果该异常是检测时异常,必须声明.
异常在子父类异常覆盖中的体现:
1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类异常或该异常的子类.
2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集.
3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常.
如果子类方法发生了异常,就必修要进行try处理,否则不能运行.

  1. /*
  2. 有一个园和长方形.获取面积.对于面积如果出现非法数值,视为获取面积出现问题,问题通过异常表示.

  3. 1,先对求面积程序进行设计.
  4. 2,对长方形长宽异常分析,并以RuntimeException方式抛出
  5. 3,对圆输入半径异常分析,并以RuntimeException方式抛出
  6. */
  7. */
  8. class NoValueException extends RuntimeException//创建无效输入的异常情况.
  9. {
  10.         NoValueException(String message)
  11.         {
  12.                 super(message);
  13.         }
  14. }

  15. interface Shape//创建接口
  16. {
  17.         void getArea();
  18. }

  19. class Rec implements Shape//创建长方形类
  20. {
  21.         private int len,wid ;
  22.         Rec(int len, int wid)
  23.         {
  24.                 if (len <= 0 || wid <= 0)
  25.                 throw new NoValueException("出现非法值");//非法长和宽,运行异常抛出
  26.                 this.len=len;
  27.                 this.wid=wid;
  28.         }
  29.         public void getArea()//定义面积计算方法
  30.         {
  31.                 System.out.println(len*wid);
  32.         }
  33. }
  34. class Circle implements Shape//创建圆的类
  35. {
  36.         private int radius;
  37.         public static final double PI = 3.14;
  38.         Circle (int radius)
  39.         {
  40.                 if (radius <= 0)
  41.                 throw new RuntimeException("圆半径非法");//非法半径,运行异常抛出
  42.                 this.radius=radius;
  43.         }
  44.         public void getArea()
  45.         {
  46.                 System.out.println(radius*radius*PI);       
  47.         }
  48. }

  49. class ExceptionTest//主函数:创建对象并调用对应面积计算方法.
  50. {
  51.         public static void main(String[] args)
  52.         {
  53.                 Rec r = new Rec(3,4);
  54.                 r.getArea();

  55.                 Circle c = new Circle(5);
  56.                 c.getArea();
  57.                 System.out.println("over");
  58.                
  59.                
  60.         }
  61. }
复制代码




1 个回复

倒序浏览
看了遍没看懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马