异常(除数不能为0)

//1 编写程序:实现不能除以0.
//思路:
//(1)定义一个异常类,名字为CanNotDiv0
//(2)定义一个计算类,里面有加法,减法,乘法,除法四个方法。其中除法要声明为有可能抛出异常,除法的方法体内有明确的throw语句。
//(3)编写一个测试类,测试捕获这个异常。

 

法1

class CalculateException extends Exception
{
private int x;
private int y;
void CanNotDiv0(int x,int y)
{
this.x=x;
this.y=y;
}
public void execeptionMessage()
{
System.out.println("除数不能为零!");
}
}

class Calculate
{
int x;
int y;
Calculate(int x,int y)
{
this.x=x;
this.y=y;
}
public int Add(int x,int y)
{
return x+y; }
public int Reduce(int x,int y)
{
return x-y; }
public int Cheng(int x,int y)
{
return x*y; }
public int Chu(int x,int y) throws CalculateException
{

if(y==0)
{
throw new CalculateException();
}
else
return x/y;
}
}

public class Test
{
public static void main(String[] args)
{
int he,cha,cheng;
float chu=0;
Calculate calculate=new Calculate(6,2);
he=calculate.Add(8,2);
cha=calculate.Reduce(10,5);
cheng=calculate.Cheng(3,6);
try
{
chu=calculate.Chu(12,0);
}
catch(CalculateException e)
{
e.execeptionMessage();
}
System.out.print("和为"+he);
System.out.print("差为"+cha);
System.out.print("积为"+cheng);
System.out.print("商为"+chu);
}
}

运行效果:

法2

class CanNotDiv0 extends Exception
{
CanNotDiv0()
{
super("捕获到一个除数为“0”的异常");
}
}
class JiSuan
{
public int add(int a,int b)
{
return a+b;
}
public int JianFa(int a,int b)
{
return a-b;
}
public int ChengFa(int a,int b)
{
return a*b;
}
public double ChuFa(int a,int b) throws CanNotDiv0
{
double c;
if(b==0)
{throw new CanNotDiv0();}
else
{ return a/b;}
}
}
public class CanNotDivTest
{
public static void main(String[] args)
{
JiSuan J1=new JiSuan();
try
{J1.ChuFa(15,0);}
catch(CanNotDiv0 e)
{e.printStackTrace();}
}
}

运行效果:

posted on 2017-05-21 16:58  Iitb  阅读(1032)  评论(0)    收藏  举报

导航