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());
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.