Skip to content

Commit

Permalink
Merge pull request #1006 from sbmaggarwal/master
Browse files Browse the repository at this point in the history
Added chainedexceptions in core-java
  • Loading branch information
maibin authored Jan 17, 2017
2 parents 2c522ca + b2a03d9 commit 7b8bc69
Show file tree
Hide file tree
Showing 7 changed files with 143 additions and 0 deletions.
4 changes: 4 additions & 0 deletions core-java/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@
*.txt
/bin/
/temp

#IntelliJ specific
.idea
*.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.baeldung.chainedexception;

import com.baeldung.chainedexception.exceptions.GirlFriendOfManagerUpsetException;
import com.baeldung.chainedexception.exceptions.ManagerUpsetException;
import com.baeldung.chainedexception.exceptions.NoLeaveGrantedException;
import com.baeldung.chainedexception.exceptions.TeamLeadUpsetException;

public class LogWithChain {

public static void main(String[] args) throws Exception {
getLeave();
}

private static void getLeave() throws NoLeaveGrantedException {
try {
howIsTeamLead();
} catch (TeamLeadUpsetException e) {
throw new NoLeaveGrantedException("Leave not sanctioned.", e);
}
}

private static void howIsTeamLead() throws TeamLeadUpsetException {
try {
howIsManager();
} catch (ManagerUpsetException e) {
throw new TeamLeadUpsetException(
"Team lead is not in good mood", e);
}
}

private static void howIsManager() throws ManagerUpsetException {
try {
howIsGirlFriendOfManager();
} catch (GirlFriendOfManagerUpsetException e) {
throw new ManagerUpsetException("Manager is in bad mood", e);
}
}

private static void howIsGirlFriendOfManager()
throws GirlFriendOfManagerUpsetException {
throw new GirlFriendOfManagerUpsetException(
"Girl friend of manager is in bad mood");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.baeldung.chainedexception;

import com.baeldung.chainedexception.exceptions.GirlFriendOfManagerUpsetException;
import com.baeldung.chainedexception.exceptions.ManagerUpsetException;
import com.baeldung.chainedexception.exceptions.NoLeaveGrantedException;
import com.baeldung.chainedexception.exceptions.TeamLeadUpsetException;

public class LogWithoutChain {

public static void main(String[] args) throws Exception {
getLeave();
}

private static void getLeave() throws NoLeaveGrantedException {
try {
howIsTeamLead();
} catch (TeamLeadUpsetException e) {
e.printStackTrace();
throw new NoLeaveGrantedException("Leave not sanctioned.");
}
}

private static void howIsTeamLead() throws TeamLeadUpsetException {
try {
howIsManager();
} catch (ManagerUpsetException e) {
e.printStackTrace();
throw new TeamLeadUpsetException(
"Team lead is not in good mood");
}
}

private static void howIsManager() throws ManagerUpsetException {
try {
howIsGirlFriendOfManager();
} catch (GirlFriendOfManagerUpsetException e) {
e.printStackTrace();
throw new ManagerUpsetException("Manager is in bad mood");
}
}

private static void howIsGirlFriendOfManager()
throws GirlFriendOfManagerUpsetException {
throw new GirlFriendOfManagerUpsetException(
"Girl friend of manager is in bad mood");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.baeldung.chainedexception.exceptions;

public class GirlFriendOfManagerUpsetException extends Exception {

public GirlFriendOfManagerUpsetException(String message, Throwable cause) {
super(message, cause);
}

public GirlFriendOfManagerUpsetException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.baeldung.chainedexception.exceptions;

public class ManagerUpsetException extends Exception {

public ManagerUpsetException(String message, Throwable cause) {
super(message, cause);
}

public ManagerUpsetException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.baeldung.chainedexception.exceptions;

public class NoLeaveGrantedException extends Exception {

public NoLeaveGrantedException(String message, Throwable cause) {
super(message, cause);
}

public NoLeaveGrantedException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.baeldung.chainedexception.exceptions;

public class TeamLeadUpsetException extends Exception {

public TeamLeadUpsetException(String message, Throwable cause) {
super(message, cause);
}

public TeamLeadUpsetException(String message) {
super(message);
}
}

0 comments on commit 7b8bc69

Please sign in to comment.