黑马程序员技术交流社区
标题:
异常小练习
[打印本页]
作者:
695010894
时间:
2016-3-28 16:56
标题:
异常小练习
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");
}
}
复制代码
作者:
青争心
时间:
2016-3-28 21:46
看了遍没看懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2