First create three exception classes named NumberHighExcepti
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. Execute your program for a number that is too high, one that is too low, one that is negative, and one that is in range.
Solution
Checking.java
import java.util.Scanner;
public class Checking {
public static void main(String[] args) {
Verify v = new Verify (10, 100);
Scanner scan = new Scanner(System.in);
try{
System.out.println(\"Enter a number with specified range (10 to 100): \");
int n = scan.nextInt();
v.validate(n);
System.out.println(n);
}
catch(NumberLowException e){
System.out.println(e);
}
catch(NumberHighException e){
System.out.println(e);
}
}
}
NumberHighException.java
public class NumberHighException extends Exception{
String errorMsg ;
public NumberHighException (String s){
this.errorMsg = s;
}
public String toString(){
return (errorMsg ) ;
}
}
NumberLowException.java
public class NumberLowException extends Exception{
String errorMsg ;
public NumberLowException (String s){
this.errorMsg = s;
}
public String toString(){
return (errorMsg ) ;
}
}
NumberNegativeException.java
public class NumberNegativeException extends NumberLowException{
public NumberNegativeException (String s){
super(s);
}
public String toString(){
return (errorMsg ) ;
}
}
Verify.java
public class Verify {
private int min;
private int max;
public Verify(int min, int max){
this.min = min;
this.max = max;
}
public void validate(int value) throws NumberLowException, NumberHighException{
if(value < 0){
throw new NumberNegativeException(\"Invalid Number. Number should be positive.\");
}
else if(value < min){
throw new NumberLowException(\"Invalid Number. Number should be greater than or equal to \"+min);
}
else if(value > max){
throw new NumberHighException(\"Invalid Number. Number should be less than or equal to \"+max);
}
}
}
Output:
Enter a number with specified range (10 to 100):
-56
Invalid Number. Number should be positive.
Enter a number with specified range (10 to 100):
120
Invalid Number. Number should be less than or equal to 100
Enter a number with specified range (10 to 100):
1
Invalid Number. Number should be greater than or equal to 10

