Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

given the following code public class RetailItemDemo { public static void main(S

ID: 3533779 • Letter: G

Question

given the following code

public class RetailItemDemo
{
    public static void main(String[] args)
    {
       // Create the first item. Use the no-arg constructor.
         RetailItem item1 = new RetailItem();
       item1.setDescription("Jacket");
       item1.setUnitsOnHand(12);
       item1.setPrice(59.95);
       
       // Create the second item. Use the constructor
         // to initialize the fields.
         RetailItem item2 =
              new RetailItem("Designer Jeans", 40, 34.95);

       // Create the third item. Use the no-arg constructor.
         RetailItem item3 = new RetailItem();
       item3.setDescription("Shirt");
       item3.setUnitsOnHand(20);
       item3.setPrice(24.95);
       
       // Display the info for item1.
       System.out.println("Item #1");
       System.out.println("Description: " + item1.getDescription());
       System.out.println("Units on hand: " + item1.getUnitsOnHand());
       System.out.println("Price: " + item1.getPrice());

       // Display the info for item2.
       System.out.println(" Item #2");
       System.out.println("Description: " + item2.getDescription());
       System.out.println("Units on hand: " + item2.getUnitsOnHand());
       System.out.println("Price: " + item2.getPrice());

       // Display the info for item3.
       System.out.println(" Item #3");
       System.out.println("Description: " + item3.getDescription());
       System.out.println("Units on hand: " + item3.getUnitsOnHand());
       System.out.println("Price: " + item3.getPrice());
    }
}


public class RetailItem
{
    private String description; // Item description
    private int unitsOnHand;     // Number of units on hand
    private double price;            // Unit price

     /**
         This constructor initializes the item's
         description with an empty string, units on hand
         to 0, and price to 0.0.
     */

     public RetailItem()
     {
         description = "";
         unitsOnHand = 0;
         price = 0.0;
     }

     /**
         This constructor initializes the item's
         description, units on hand, and price with
         values passed as arguments.
         @param d The item's description.
         @param u The number of units on hand.
         @param p The item's price.
     */
     
     public RetailItem(String d, int u, double p)
     {
         description = d;
         unitsOnHand = u;
         price = p;
     }

    /**
     The setDescription method sets the item's
         description.
         @param d The item's description.
    */

    public void setDescription(String d)
    {
       description = d;
    }

    /**
     The setUnitsOnHand method sets the item's
         number of units on hand.
         @param u The number of units on hand.
    */

    public void setUnitsOnHand(int u)
    {
       unitsOnHand = u;
    }

    /**
     The setPrice method sets the item's price.
         @param p The item's price.
    */

    public void setPrice(double p)
    {
       price = p;
    }

    /**
     The getDescription method returns the item's
         description.
         @return The item's description.
    */

    public String getDescription()
    {
       return description;
    }

    /**
     The getUnitsOnHand method returns the item's
         number of units on hand.
         @return The units on hand.
    */

    public int getUnitsOnHand()
    {
       return unitsOnHand;
    }

    /**
     The getPrice method rerurns the item's price.
         @return The item's price.
    */

    public double getPrice()
    {
       return price;
    }
}


this program 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.

can somebody help me with this, im not good with exceptions thanks


Explanation / Answer

// EXCEPTON CLASSES DECLARED AT THE BOTTOM

// EXCEPTON CLASSES USED in the setPrice() and setUnitsatHand() function of class retailItem


public class RetailItemDemo

{

public static void main(String[] args)

{

// Create the first item. Use the no-arg constructor.

RetailItem item1 = new RetailItem();

item1.setDescription("Jacket");

item1.setUnitsOnHand(12);

item1.setPrice(59.95);

// Create the second item. Use the constructor

// to initialize the fields.

RetailItem item2 =

new RetailItem("Designer Jeans", 40, 34.95);

// Create the third item. Use the no-arg constructor.

RetailItem item3 = new RetailItem();

item3.setDescription("Shirt");

item3.setUnitsOnHand(20);

item3.setPrice(24.95);

// Display the info for item1.

System.out.println("Item #1");

System.out.println("Description: " + item1.getDescription());

System.out.println("Units on hand: " + item1.getUnitsOnHand());

System.out.println("Price: " + item1.getPrice());

// Display the info for item2.

System.out.println(" Item #2");

System.out.println("Description: " + item2.getDescription());

System.out.println("Units on hand: " + item2.getUnitsOnHand());

System.out.println("Price: " + item2.getPrice());

// Display the info for item3.

System.out.println(" Item #3");

System.out.println("Description: " + item3.getDescription());

System.out.println("Units on hand: " + item3.getUnitsOnHand());

System.out.println("Price: " + item3.getPrice());

}

}


public class RetailItem

{

private String description; // Item description

private int unitsOnHand; // Number of units on hand

private double price; // Unit price

/**

This constructor initializes the item's

description with an empty string, units on hand

to 0, and price to 0.0.

*/

public RetailItem()

{

description = "";

unitsOnHand = 0;

price = 0.0;

}

/**

This constructor initializes the item's

description, units on hand, and price with

values passed as arguments.

@param d The item's description.

@param u The number of units on hand.

@param p The item's price.

*/

public RetailItem(String d, int u, double p)

{

description = d;

unitsOnHand = u;

price = p;

}

/**

The setDescription method sets the item's

description.

@param d The item's description.

*/

public void setDescription(String d)

{

description = d;

}

/**

The setUnitsOnHand method sets the item's

number of units on hand.

@param u The number of units on hand.

*/

// USING EXCEPTON CLASSES

public void setUnitsOnHand(int u)

{

if(u<0)

{

try{

throw new NegativeUnitException();

// throw is used to create a new exception and throw it.

}

catch(NegativeUnitException e){

System.out.println(e) ; }

}

else

{

unitsOnHand = u;

}

}

/**

The setPrice method sets the item's price.

@param p The item's price.

*/

// USING EXCEPTON CLASSES

public void setPrice(double p)

{

if(p<0)

{

try{

throw new NegativePriceException();

// throw is used to create a new exception and throw it.

}

catch(NegativePriceException e){

System.out.println(e) ; }

}

else

{

price = p;

}

}

/**

The getDescription method returns the item's

description.

@return The item's description.

*/

public String getDescription()

{

return description;

}

/**

The getUnitsOnHand method returns the item's

number of units on hand.

@return The units on hand.

*/

public int getUnitsOnHand()

{

return unitsOnHand;

}

/**

The getPrice method rerurns the item's price.

@return The item's price.

*/

public double getPrice()

{

return price;

}

}

//EXCEPTON CLASSES

class NegativePriceException extends Exception {   

NegativePriceException() { }

public String toString(){

return ("Don't allow negative number to be a price ") ;

}

}


class NegativeUnitException extends Exception {   

NegativeUnitException() { }   

public String toString(){

return ("Don't allow negative number to be a unit ") ;

}

}