JAVA RetailItem Exceptions Programming Challenge 4 of Chapter 6 required you to
ID: 3930731 • Letter: J
Question
JAVA
RetailItem Exceptions
Programming Challenge 4 of Chapter 6 required you to write a RetailItem class that holds data pertaining to a retail item. Write an exception class that can be instantiated and thrown when a negative number is given for the price. Write another exception class that can be instantiated and thrown when a negative number is given for the units on hand. Demonstrate the exception classes in a program.
Chapter 11 Challenge 3 (you need 4 classes: Negative price and Negative unit exceptions, Retail item and demo classes)
And the output is suppose to look like this:
Output
Enter the item description: candy bar
Enter the units on hand: -5
Error: Negative number given for units: -5.0
Enter the units on hand: 5
Enter the item price: -10
Error: Negative number given for price: -10.0
Enter the item price: 10
You entered:
Description: candy bar
Units on hand: 5
Price: 10.0
Hello I need help with this program this is what I got so far but I dont get the output can you please tell me what I am doing wrong or what extra code do I need to add in order to show this output. Thank you in advance.
================================================================
=========================================================
===================================================================
Explanation / Answer
Please find the code and comments for description :
CODE :
import java.util.Scanner; //Needed for Scanner class
//InvalidPrice Exception class
class InvalidPrice extends Exception {
public InvalidPrice(double n) {
super("Error: Negative number given for price : " + n);
}
}//end class
//Invalid Price Exception class
class InvalidUnits extends Exception {
public InvalidUnits(double n) {
super("Error: Negative number given for units : " + n);
}
}//end class
class RetailItem {
private String description;
private int units;
private double price;
public RetailItem() {
}
//Constructor with arguments
public RetailItem(String des, int u, double p) throws InvalidPrice, InvalidUnits {
description = des;
if (u < 0) {
throw new InvalidUnits(u);
} else {
units = u;
}
units = u;
if (p < 0) {
throw new InvalidPrice(p);
} else {
price = p;
}
}
//Mutator function for description
public void setDescription(String des) {
description = des;
}
//Mutator function for price
public void setPrice(double p) throws InvalidPrice {
if (p < 0) {
throw new InvalidPrice(p);
} else {
price = p;
}
}
//Mutator function for units on hand
void setUnits(int u) throws InvalidUnits {
if (u < 0) {
throw new InvalidUnits(u);
} else {
units = u;
}
}
//Accessor function for units on hand
public int getUnits() {
return units;
}
//Accessor function for description
public String getDescription() {
return description;
}
//Accessor function for price
public double getPrice() {
return price;
}
}
public class RetailItemDemo {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
RetailItem r1;
String itemDesc;
int units;
double price;
//RetailItem with three objects
System.out.println("Enter the item description : ");
itemDesc = sc.nextLine();
System.out.println("Enter the units on hand : ");
units = sc.nextInt();
while (units < 0) {
try {
if (units < 0) {
throw new InvalidUnits(units);
}
} catch (InvalidUnits e) {
System.out.println(e.getMessage());
}
System.out.println("Enter the units on hand : ");
units = sc.nextInt();
}
System.out.println("Enter the item price : ");
price = sc.nextDouble();
while (price < 0) {
try {
if (price < 0) {
throw new InvalidPrice(price);
}
} catch (InvalidPrice e) {
System.out.println(e.getMessage());
}
System.out.println("Enter the item price : ");
price = sc.nextDouble();
}
r1 = new RetailItem(itemDesc, units, price);
//function call to set values
System.out.println(" ");
System.out.println(" Description Units on Hand Price");
System.out.println(" ");
//Accessor function calls
System.out.println("Item #1 " + r1.getDescription() + " " + r1.getUnits() + " " + r1.getPrice());
//pause system for a while
System.exit(0);
}
}
OUTPUT :
Enter the item description :
Shirts
Enter the units on hand :
-5
Error: Negative number given for units : -5.0
Enter the units on hand :
-10
Error: Negative number given for units : -10.0
Enter the units on hand :
5
Enter the item price :
-99
Error: Negative number given for price : -99.0
Enter the item price :
-78
Error: Negative number given for price : -78.0
Enter the item price :
54
Description Units on Hand Price
Item #1 Shirts 5 54.0
Hope this is helpful.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.