class TankOverflowException : Exception{
public TankOverflowException(): base(String.Format("Tank is overflowing")){}
class TankFullException : Exception{
public TankFullException(): base(String.Format("Tank is full")){}
public Tank(int tankCapacity){
this.tankCapacity=tankCapacity;
public void takeInput(int input){
this.tankCapacity-=input;
public int checkTankCapacity(){
return this.tankCapacity;
public static void Main()
Console.Write("Enter entire tank capacity : ");
Tank tank=new Tank(Convert.ToInt32(Console.ReadLine()));
while(tank.checkTankCapacity()>=0){
if(tank.checkTankCapacity()==0){
throw new TankFullException();
Console.Write("Enter volume to fill : ");
fillVolume=Convert.ToInt32(Console.ReadLine());
tank.takeInput(fillVolume);
Console.WriteLine("current tank input capacity : {0}",tank.checkTankCapacity());
throw new TankOverflowException();
}catch(TankFullException e){
Console.WriteLine(e.Message);
}catch(TankOverflowException e){
Console.WriteLine(e.Message);