• Post Reply Bookmark Topic Watch Topic
  • New Topic

Exceptions  RSS feed

 
Will Van Pelt
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello everyone. This is my first post, so forgive me if this has been asked a million times. Below I will post an assignment I am having some trouble with. Specifically, I am stumped why I have to place two parameters in the Verify constructor. If the numbers are being typed in by the user and passed through the validate method, what is the point of having them in Verify() ?

Thanks for any help!

First, create three exception classes named NumberHighException, NumberLowException, and NumberNegativeException. Both NumberHighException and NumberLowException should be directly subclassed from the Exception class, but NumberNegativeException should be subclassed from NumberLowException. You can use the BadDataException class that was defined in this module as the model for your exception classes.

Next create a class called Verify that will be used to validate that a number is within a specified range. It should have one constructor that has two int parameters. The first parameter is the minimum number in the range, and the second parameter is the maximum number in the range.

In addition to the constructor, the Verify class should have one method that is named validate. The validate method should have a single parameter of data type int. The parameter contains the number that is being validated. If the value of the parameter is less than zero, the method should throw a NumberNegativeException. If the value is less than the minimum value of the range, it should throw a NumberLowException. If the value is greater than the maximum value of the range, it should throw a NumberHighException. If the value is within the specified range, no exception should be thrown.

Once all of these classes are created, create the driver class called Program5. The driver class should instantiate a Verify object with a range of 10 to 100. It should then do the following:

Prompt the user to input a number within the specified range.
Use a Scanner to read the user input as an int. You can ensure that an int was entered because the nextInt method throws an InputMismatchException if any non-digits are entered.
Call the validate method to validate that the number is within the range.
Print an appropriate error message if the value is not within the range, or print the value if it is within the range.
 
K. Tsang
Bartender
Posts: 3648
16
Firefox Browser Java Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Will Van Pelt wrote:Hello everyone. This is my first post, so forgive me if this has been asked a million times. Below I will post an assignment I am having some trouble with. Specifically, I am stumped why I have to place two parameters in the Verify constructor. If the numbers are being typed in by the user and passed through the validate method, what is the point of having them in Verify() ?


Welcome to the Ranch.

Well according to the requirements, the Verify class basically sets the range of the numbers (eg 10 to 100). Actually the name "Verify" is not that good when you are really defining a (number) range. Probably the name "VerifyRange" is better but hey the class name is not your call when it's homework.
 
Matthew Brown
Bartender
Posts: 4568
9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It sounds like you have three relevant numbers. The minimum allowed value, the maximum allowed value, and the value you are actually checking. The first two are set in the constructor, and the last is provided in the validate() method. So there's no repetition.

Doing it this way particularly makes sense if you want to set the allowed range once and then test several numbers against it.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!