Expert Solution & Answer
Book Icon
Chapter 9, Problem 4E

Explanation of Solution

Exception classes:

The two classes that derives “InvalidFormattingException” are “InvalidHourException” and “InvalidMinuteException”.

InvalidHourException.java:

//Create a class that extends Exception

public class InvalidHourException extends InvalidFormattingException

{

    //Define a parameterized constructor

    public InvalidHourException(String reason)

    {

//Call the parent class's method by passing a message

        super(reason);

    }

}

Explanation:

The above class “InvalidHourException” extends “InvalidFormattingException” and this exception occurs when the hour entered by the user in invalid.

InvalidMinuteException.java:

//Create a class that extends Exception

public class InvalidMinuteException extends InvalidFormattingException

{

    //Define a parameterized constructor

    public InvalidMinuteException(String reason)

    {

//Call the parent class's method by passing a message

        super(reason);

    }

}

Explanation:

The above class “InvalidMinuteException” extends “InvalidFormattingException” and this exception occurs when the minute entered by the user in invalid.

Complete program:

Main.java:

//Import required packages

import java.util.*;

import java.util.Scanner;

//Define the main class

class Main

{

    //Declare required variables

    private int hour, minute;

    private boolean isAM;

    //Constructor

    public TimeOfDay()

    {

        //Instantiate the values

        hour = 0;

        minute = 0;

        isAM = false;

    }

    //Function definition to set the time

public void setTimeTo(String aTime) throws InvalidFormattingException, InvalidHourException, InvalidMinuteException

    {

        //Declare required variables

        int hourFound;

        int minuteFound;

        String indicatorFound;

        //Create an object for the scanner class

        Scanner reader = new Scanner(aTime);

        //Split using the delimiter

        reader.useDelimiter(":");

        //Try block

        try

        {

            //Assign the hour

            hourFound = reader.nextInt();

        }

        //Catch the exception

        catch (Exception e)

        {

            //Throw the exception with a message

throw new InvalidFormattingException("Hour not an integer");

        }

        //Check the condition

        if(hourFound<1 || hourFound>12)

            //Throw the exception with a message

throw new InvalidHourException("Hour not in the range of 1 to 12");

        //Get the remaining string

        String restOfString = reader.next();

        reader = new Scanner(restOfString);

        //Remove the last two characters

        if(restOfString.length()<3)

            //Throw the exception

throw new InvalidFormattingException("Bad format");

        //Get the substring

String minuteString = restOfString.substring(0, restOfString.length()-2);

        //Get the substring

String amString = restOfString.substring(restOfString.length()-2);

        //Try block

        try

        {

            //Convert the minute to integer

minuteFound = Integer.parseInt(minuteString);

        }

        //Catch the exception

        catch (Exception e)

        {

            //Throw the exception

throw new InvalidFormattingException("Minute not an integer");

        }

        //Check the condition

        if(minuteFound<0 || minuteFound>59)

            //Throw the exception with a message

throw new InvalidMinuteException("Minute not in the range of 0 to 59");

        //Check condition

if(!amString.equals("am") && !amString.equals("pm"))

            //Throw the exception with a message

throw new InvalidFormattingException("Did not have am/pm");

        //Assign the value

        hour = hourFound;

        //Assign the value

        minute = minuteFound;

        //Check if the string is am

        if(amString...

Blurred answer
Students have asked these similar questions
Write a program that simulates a Magic 8 Ball, which is a fortune-telling toy that displays a random response to a yes or no question. In the student sample programs for this book, you will find a text file named 8_ball_responses.txt. The file contains 12 responses, such as “I don’t think so”, “Yes, of course!”, “I’m not sure”, and so forth. The program should read the responses from the file into a list. It should prompt the user to ask a question, then display one of the responses, randomly selected from the list. The program should repeat until the user is ready to quit. Contents of 8_ball_responses.txt:  Yes, of course! Without a doubt, yes. You can count on it. For sure! Ask me later. I'm not sure. I can't tell you right now. I'll tell you after my nap. No way! I don't think so. Without a doubt, no. The answer is clearly NO. (You can access the Computer Science Portal at www.pearsonhighered.com/gaddis.)
Start with the initial angles within the integration and just integrate them without mapping them to specific quadrants. Use python and radians
How does encryption prevent a hacker from getting your data

Chapter 9 Solutions

Java: An Introduction to Problem Solving and Programming plus MyProgrammingLab with Pearson eText -- Access Card Package (7th Edition)

Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781305480537
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT