From 70b9ff171feb2e02ae04d5f5161e9a3873bb3fc2 Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Thu, 27 Oct 2022 17:48:50 +0200 Subject: [PATCH 1/6] implement solution --- Employee.java | 13 +++++++++++++ Exercise.java | 8 ++++++++ SalaryDecreaseException.java | 8 ++++++++ SalaryIncreaseTooHighException.java | 8 ++++++++ 4 files changed, 37 insertions(+) create mode 100644 SalaryDecreaseException.java create mode 100644 SalaryIncreaseTooHighException.java diff --git a/Employee.java b/Employee.java index 2c2d756..2e8d0ba 100644 --- a/Employee.java +++ b/Employee.java @@ -22,6 +22,19 @@ public int getSalary() { return salary; } + public void setSalary(int salary) throws SalaryDecreaseException, SalaryIncreaseTooHighException { + if (this.salary > salary) { + throw new SalaryDecreaseException(); + } + + double change = (double) (salary - this.salary) / this.salary; + if (change > 0.1) { + throw new SalaryIncreaseTooHighException(); + } + + this.salary = salary; + } + public void print() { System.out.println(employeeId + " - " + getName() + " - " + salary + "€"); } diff --git a/Exercise.java b/Exercise.java index 8dd8b6e..db3e8e1 100644 --- a/Exercise.java +++ b/Exercise.java @@ -17,6 +17,14 @@ public static void main(String[] args) { company.addEmployee(new Employee(4, new Person("Peter Schneider"), 55000)); company.addEmployee(new Employee(5, new Person("Miriam Albers"), 90000)); + try { + e1.setSalary(55000); + e2.setSalary(77000); + e3.setSalary(45000); + } catch (SalaryDecreaseException | SalaryIncreaseTooHighException e) { + System.err.println(e.getMessage()); + } + company.print(); } } diff --git a/SalaryDecreaseException.java b/SalaryDecreaseException.java new file mode 100644 index 0000000..6e05cb3 --- /dev/null +++ b/SalaryDecreaseException.java @@ -0,0 +1,8 @@ +public class SalaryDecreaseException extends Exception { + + private static final long serialVersionUID = 1L; + + public SalaryDecreaseException() { + super("Das neue Gehalt muss hoeher sein als das bisherige"); + } +} diff --git a/SalaryIncreaseTooHighException.java b/SalaryIncreaseTooHighException.java new file mode 100644 index 0000000..c9b0c63 --- /dev/null +++ b/SalaryIncreaseTooHighException.java @@ -0,0 +1,8 @@ +public class SalaryIncreaseTooHighException extends Exception { + + private static final long serialVersionUID = 1L; + + public SalaryIncreaseTooHighException() { + super("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + } +} From 12449f198360a9081a27a3b1654eb9e28838d1ee Mon Sep 17 00:00:00 2001 From: github-actions <> Date: Sat, 2 Mar 2024 11:11:16 +0000 Subject: [PATCH 2/6] Google Java Format --- Employee.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Employee.java b/Employee.java index 532d79e..04f0051 100644 --- a/Employee.java +++ b/Employee.java @@ -22,7 +22,8 @@ public int getSalaryInEuro() { return salaryInEuro; } - public void setSalaryInEuro(int salaryInEuro) throws SalaryDecreaseException, SalaryIncreaseTooHighException { + public void setSalaryInEuro(int salaryInEuro) + throws SalaryDecreaseException, SalaryIncreaseTooHighException { if (salaryInEuro > salaryInEuro) { throw new SalaryDecreaseException(); } From 7742e26c058f18be4e3743e8c83c0a6fc2a7bab6 Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Sat, 2 Mar 2024 12:12:30 +0100 Subject: [PATCH 3/6] fix solution --- Employee.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Employee.java b/Employee.java index 04f0051..5989d94 100644 --- a/Employee.java +++ b/Employee.java @@ -24,7 +24,7 @@ public int getSalaryInEuro() { public void setSalaryInEuro(int salaryInEuro) throws SalaryDecreaseException, SalaryIncreaseTooHighException { - if (salaryInEuro > salaryInEuro) { + if (this.salaryInEuro > salaryInEuro) { throw new SalaryDecreaseException(); } From 7e5d1fc8bf53cb646cd155c9bf2be21acc6d9585 Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Sat, 2 Mar 2024 12:15:03 +0100 Subject: [PATCH 4/6] fix solution --- SalaryDecreaseException.java | 2 -- SalaryIncreaseTooHighException.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/SalaryDecreaseException.java b/SalaryDecreaseException.java index 6e05cb3..7f04c7b 100644 --- a/SalaryDecreaseException.java +++ b/SalaryDecreaseException.java @@ -1,7 +1,5 @@ public class SalaryDecreaseException extends Exception { - private static final long serialVersionUID = 1L; - public SalaryDecreaseException() { super("Das neue Gehalt muss hoeher sein als das bisherige"); } diff --git a/SalaryIncreaseTooHighException.java b/SalaryIncreaseTooHighException.java index c9b0c63..476fa72 100644 --- a/SalaryIncreaseTooHighException.java +++ b/SalaryIncreaseTooHighException.java @@ -1,7 +1,5 @@ public class SalaryIncreaseTooHighException extends Exception { - private static final long serialVersionUID = 1L; - public SalaryIncreaseTooHighException() { super("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); } From 34b98603ddf0d22f210b11b0e967fca2f938deb7 Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Sat, 2 Mar 2024 12:27:11 +0100 Subject: [PATCH 5/6] add alternative solutions --- Exercise.java | 25 +++++++++++++++++++++++++ SalaryDecreaseException.java | 1 + SalaryIncreaseTooHighException.java | 1 + 3 files changed, 27 insertions(+) diff --git a/Exercise.java b/Exercise.java index 4dfa60b..f430980 100644 --- a/Exercise.java +++ b/Exercise.java @@ -25,6 +25,31 @@ public static void main(String[] args) { System.err.println(e.getMessage()); } + // alternative multiple catch: + try { + e1.setSalaryInEuro(55000); + e2.setSalaryInEuro(77000); + e3.setSalaryInEuro(45000); + } catch (SalaryDecreaseException e) { + System.out.println("Das neue Gehalt muss hoeher sein als das bisherige"); + } catch (SalaryIncreaseTooHighException e) { + System.out.println("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + } + + // alternative instance of + try { + e1.setSalaryInEuro(55000); + e2.setSalaryInEuro(77000); + e3.setSalaryInEuro(45000); + } catch (Exception e) { + if (e instanceof SalaryDecreaseException) { + System.out.println("Das neue Gehalt muss hoeher sein als das bisherige"); + } + if (e instanceof SalaryIncreaseTooHighException) { + System.out.println("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + } + } + System.out.println(company.toString()); } } diff --git a/SalaryDecreaseException.java b/SalaryDecreaseException.java index 7f04c7b..f1a6e10 100644 --- a/SalaryDecreaseException.java +++ b/SalaryDecreaseException.java @@ -2,5 +2,6 @@ public class SalaryDecreaseException extends Exception { public SalaryDecreaseException() { super("Das neue Gehalt muss hoeher sein als das bisherige"); + // alternativ: super(); } } diff --git a/SalaryIncreaseTooHighException.java b/SalaryIncreaseTooHighException.java index 476fa72..47b65f5 100644 --- a/SalaryIncreaseTooHighException.java +++ b/SalaryIncreaseTooHighException.java @@ -2,5 +2,6 @@ public class SalaryIncreaseTooHighException extends Exception { public SalaryIncreaseTooHighException() { super("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + // alternativ: super(); } } From 099f2511441d500ff3a32d9011e0a7758ba9091e Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Sat, 1 Mar 2025 15:16:38 +0100 Subject: [PATCH 6/6] Use correct message --- Exercise.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Exercise.java b/Exercise.java index f430980..1f0c6a2 100644 --- a/Exercise.java +++ b/Exercise.java @@ -31,9 +31,9 @@ public static void main(String[] args) { e2.setSalaryInEuro(77000); e3.setSalaryInEuro(45000); } catch (SalaryDecreaseException e) { - System.out.println("Das neue Gehalt muss hoeher sein als das bisherige"); + System.out.println(e.getMessage()); } catch (SalaryIncreaseTooHighException e) { - System.out.println("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + System.out.println(e.getMessage()); } // alternative instance of @@ -43,10 +43,10 @@ public static void main(String[] args) { e3.setSalaryInEuro(45000); } catch (Exception e) { if (e instanceof SalaryDecreaseException) { - System.out.println("Das neue Gehalt muss hoeher sein als das bisherige"); + System.out.println(e.getMessage()); } if (e instanceof SalaryIncreaseTooHighException) { - System.out.println("Das neue Gehalt darf maximal 10% ueber dem bisherigen Gehalt liegen"); + System.out.println(e.getMessage()); } }