老师举得一个例子
/*
有一个圆形和长方形
都可以获取面积,对于面积出现非法的数值,视为获取面积出现问题。
问题用异常表示。
设计此程序。
*/
interface Shape
{
public void getArea();
}
class NoValueException extends RuntimeException//Exception
{
NoValueException(String msg)
{
super(msg);
}
}
class Rec implements Shape
{
private int len,wid;
Rec(int len,int wid)//throws NoValueException
{
if(len<=0 || wid<=0)
throw new NoValueException("出现非法值");
this.len = len;
this.wid = wid;
}
public void getArea()
{
System.out.println(len*wid);
}
}
class AreaFY
{
public static void main(String[] args)
{
//try
//{
Rec r = new Rec(-4,2);
r.getArea();
//}
//catch (NoValueException e)
//{
// System.out.println(e.toString());
//}
System.out.println("over");
}
}
双斜杠后面为继承Exception的程序。
为什么继承RuntimeException时就不需要try catch了呢??
|