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

Exception Project (Written in Java using netbeans) - Chapter 11 This assignment

ID: 644616 • Letter: E

Question

Exception Project (Written in Java using netbeans) - Chapter 11

This assignment assumes you have completed Programming Challenge 1 of Chapter 10 (Employee and ProductionWorker Classes). Modify the Employee and ProductionWorker clases so they throw exceptions when the following errors occur:

*The Employee class should throw and exception named InvalidEmployeeNumber when it receives and invalid employee number.

*The ProductionWorker class should throw an exception named InvalidShift when it receives an invalid shift.

*The ProductionWorker class should throw an exception named InvalidPayRate when it receives a negative number for the hourly pay rate.

This is what I have for Programming Challenge 1 of Chapter 10:

package employeedemo;

/**
*
* @author Michael
*/
class Employee
{
//fields
private String Empname;
private String Empnumber;
private String Hiredate;
  
//constructor (default)
public Employee()
{
Empname = " ";
Empnumber = " ";
Hiredate = " ";
}
//constructor (parameterized)
public Employee(String Empname, String Empnumber, String Hiredate)
{
setName(Empname);
setNumber(Empnumber);
setHireDate(Hiredate);
}
//Mutator (employee name)
public void setName(String n)
{
Empname = n;
}
//Mutator (employee number)
public void setNumber(String num)
{
Empnumber = num;
}
//Mutator (hire date)
public void setHireDate(String h)
{
Hiredate = h;
}
//Accessor (employee name)
public String getName()
{
return Empname;
}
//Accessor (employee number)
public String getNumber()
{
return Empnumber;
}
//Accessor(hire date)
public String getHireDate()
{
return Hiredate;
}
}

package employeedemo;

/**
*
* @author Michael
*/
class ProductionWorker extends Employee
{
//fields
private int shift;
private double hourpayrate;
  
//constructor
public ProductionWorker(String Empname, String Empnumber, String Hiredate,
int shift, double hourpayrate)
{
super(Empname,Empnumber,Hiredate);
setShift(shift);
setHourlyPayRate(hourpayrate);
}
  
//accessor
public int getShift()
{
return shift;
}
public double getHourlyPayRate()
{
return hourpayrate;
}
//mutator
public void setShift(int s)
{
shift = s;
}
public void setHourlyPayRate(double r)
{
hourpayrate = r;
}
  
}

package employeedemo;

import java.util.Scanner;

/**
*
* @author Michael
*/
public class EmployeeDemo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String name, id, date;
double pay;
int shift;
  
//Scanner
Scanner keyboard = new Scanner(System.in);
//User Input
System.out.println("Please enter employee's name: ");
name = keyboard.nextLine();
//input ID
System.out.println("Please enter employee's ID: ");
id = keyboard.nextLine();
//input date
System.out.println("Please enter employee's hire date: ");
date = keyboard.nextLine();
//input shift
System.out.println("1-Day shift 2-Night shift");
System.out.println("Please enter employee's shift: ");
shift = keyboard.nextInt();
//input pay
System.out.println("Please enter employee's hourly pay: ");
pay = keyboard.nextDouble();
  
//Call ProductionWorker class
ProductionWorker pw =
new ProductionWorker(name,id,date,shift,pay);
  
//Output
System.out.println("Employee Name: " + pw.getName());
System.out.println("Employee ID: " + pw.getNumber());
System.out.println("Hire Date: " + pw.getHireDate());
System.out.println("Shift: " + pw.getShift());
System.out.println("Hourly Rate: " + pw.getHourlyPayRate());
}
  
}

Explanation / Answer

There are four 5 classes. Employee class, Production worker class a child class of employee , Identify exception class - process the inputs and throw exception accordingly.
It is assumed "Noon" is an invalid shift, since nothing told in particular about that.
InvalidEmployeeNumberException class - an exception class which has a constructor that calls super constructor.
InvalidPayRate class - - an exception class which has a constructor that calls super constructor.

Following are the Classes
package exception;

public class Employee {
private int employeeNumber;

public int getEmployeeNumber() {
return employeeNumber;
}

public void setEmployeeNumber(int employeeNumber) {
this.employeeNumber = employeeNumber;
}
}


package exception;

public class ProductionWorker extends Employee {

private String shift;
private double rate;

public String getShift() {
return shift;
}

public void setShift(String shift) {
this.shift = shift;
}

public double getRate() {
return rate;
}

public void setRate(double rate) {
this.rate = rate;
}
}

package exception;

public class InvalidEmployeeNumberException extends Exception {
public InvalidEmployeeNumberException(String message) {
super(message);
}
}

package exception;

public class InvalidPayRate extends Exception {

public InvalidPayRate(String message) {
super(message);

}

}

package exception;

import java.util.Scanner;

public class IdentifyException {

public static void main(String[] args) {
try {

ProductionWorker e = new ProductionWorker();
Scanner sc = new Scanner(System.in);
System.out.println("Please enter Employee Number");
e.setEmployeeNumber(sc.nextInt());
if (e.getEmployeeNumber() == 9999) {
throw new InvalidEmployeeNumberException(
"Employee Number Entered is Invalid");
}
System.out.println("Please enter a Shift");
String shift = sc.next();
e.setShift(shift);
if (shift.equalsIgnoreCase("Noon")) {
throw new Exception("Invalid Shift entered");
}
System.out.println("Please enter a Pay rate");
e.setRate(sc.nextDouble());
if (e.getRate() < 0) {
throw new InvalidPayRate("Invalid Pay rate entered");
}
} catch (Exception e) {
System.out.println("Exception occurred " + e.getMessage());
}
}
}