Hi, I have a Cinema class as shown in the code below. However I'm required to create my own exceptions and pass them to the controlling module (here method with scenarios). After an exception occurs the code should stop execution of current scenario and go to another one. The code should contains plenty of System.out.println statements so that the flow is clear.
Can someone give me a hand on this please, I'm a newbie in Java and I don't know how to go about this creating my own exceptions.
import java.util.*;
import java.io.*;
public class Cinema
{
float cost;
String Title;
String mrPG="PG";
String mrA="A";
Movie movieNew = new Movie();
//MovieRating class
MovieRating mrating = new MovieRating();
private ArrayList<Human> hm = new ArrayList();
public Cinema()
{
}
public Cinema (String mtitle, float pounds)
{
this.Title=mtitle;
this.cost = pounds;
}
public float getcost (int people)
{
return cost * people;
}
/**
* Method check that the movie title and rating have been set,
* if not throw an exception.
*/
public void setMovie(Movie movieNew) throws IOException
{
try
{
if(movieNew.getTitle()!=null && movieNew.getRating()!=null)
{
System.out.println("The movie is called " +movieNew.getTitle()+
" and is rated " +movieNew.getRating()+ ".");
}
else
{
System.out.println("Movie title and rating not set");
}
}
catch(Exception e)
{
System.out.println("Movie properties not set.");
}
}
/*
* this method first checks if the movie properties are set.
*/
public void showMovie() throws IOException
{
try
{
if(movieNew.getTitle()!=null)
{
System.out.println(movieNew.getTitle()+" Now Showing"); }
else
{
System.out.println("Show has no Movie title.");
}
}
catch(Exception e)
{
System.out.println("Check the movie properties.");
}
finally
{
System.out.println("Thanks for coming.");
}
}
public void addMovieGoers(Human h)
{
Human a = new Adult("Joe",43);
Human b = new Adult("Sue",39);
Human c = new Adult("Tracy",20);
Human d = new Child("Sammy",17);
Human e = new Child("Julie",12);
Human f = new Child("Mona",6);
hm.add(a);hm.add(b);hm.add(c);hm.add(d);
hm.add(e);hm.add(f);
hm.trimToSize();
String toPrint = "";
try
{
if(movieNew.getRating()!=null && movieNew.getTitle()!=null)
{
if(mrPG.equals(movieNew.getRating())) //movies rated PG
{
System.out.println("The following can only watch under parental guidance:");
for(int i = 0; i < hm.size(); i++)
{
Human test = (Human)hm.get(i);
if ( test instanceof Child)
{
if(toPrint.equals(""))
{
System.out.println(test);
}
else
{
System.out.println("Children: " + toPrint);
}
}
}
}
else if(mrA.equals(movieNew.getRating())) //movies rated Adult
{
System.out.println("This movie is rated A");
for ( int i = 0; i < hm.size(); i++)
{
Human test = (Human)hm.get(i);
if ( test instanceof Adult)
{
if(toPrint.equals(""))
{
System.out.println(test);
}
else
{
System.out.println("Adults: " + toPrint);
}
}
}
}
else //Movies rated G
{
System.out.println("This is movie rated G. So all can watch"+
": ");
for ( int i = 0; i < hm.size(); i++)
{
System.out.println(i);
}
}
}
}
catch(Exception x)
{
System.out.println("Movie properties are missing. Please set the Title"+
" and rating first.");
}
}
public static void main(String args[]) throws IOException
{
Cinema cn = new Cinema();
Human h = new Human();
//instantiating and setting properties to the movie
Movie movieNew = new Movie();
movieNew.setName("Comedy");
movieNew.setRating("PG");
movieNew.setTitle("Mr Bin");
System.out.println("Setting Movie properties:");
cn.setMovie(movieNew);
System.out.println("Movie Goers are: ");
cn.addMovieGoers(h);
}
}