Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fb3f704

Browse files
feat(base): add 4 methods to BaseCustomException performing a runnable task or returning payload
- `executeOnError()`: `void` - `getPayload()`: `Map<String, Object>` - `getPayloadOrElse(Map<String, Object>)`: `Map<String, Object>` - `getPayloadOrElseGet(Supplier<Map<String, Object>>)`: `Map<String, Object>`
1 parent e7e7c68 commit fb3f704

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

‎src/main/java/letsdev/common/exception/support/BaseCustomException.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Collections;
44
import java.util.Map;
5+
import java.util.Objects;
56
import java.util.function.Supplier;
67

78
public class BaseCustomException extends RuntimeException {
@@ -85,6 +86,30 @@ public BaseErrorCode getErrorCode() {
8586
return errorCode;
8687
}
8788

89+
public void executeOnError() {
90+
action.run();
91+
}
92+
93+
public Map<String, Object> getPayload() {
94+
return payloadSupplier.get();
95+
}
96+
97+
public Map<String, Object> getPayloadOrElse(Map<String, Object> defaultPayload) {
98+
Objects.requireNonNull(defaultPayload, "The first argument `defaultPayload` must not be null");
99+
Map<String, Object> payload = payloadSupplier.get();
100+
return !payload.isEmpty() ? payload : defaultPayload;
101+
}
102+
103+
public Map<String, Object> getPayloadOrElseGet(Supplier<Map<String, Object>> defaultPayloadSupplier) {
104+
Objects.requireNonNull(
105+
defaultPayloadSupplier,
106+
"The first argument `defaultPayloadSupplier` must not be null"
107+
);
108+
109+
Map<String, Object> payload = payloadSupplier.get();
110+
return !payload.isEmpty() ? payload : defaultPayloadSupplier.get();
111+
}
112+
88113
private static class DefaultBaseErrorCodeHolder { // 사용할 때 로드 + 스레드 세이프(클래스 로드 타임은 동시성 보장됨.)
89114
private static final BaseErrorCode INSTANCE = new BaseErrorCode() {
90115
@Override

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /