diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/ApiTypeNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/ApiTypeNotFoundException.java index 1a4c6c65c7..2cbadfe701 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/ApiTypeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/ApiTypeNotFoundException.java @@ -5,13 +5,24 @@ public class ApiTypeNotFoundException extends DataNotFoundException { public static final String DEFAULT_MESSAGE = "존재하지 않는 API 타입입니다."; + private final String detail; public ApiTypeNotFoundException(String message) { super(message); + this.detail = null; + } + + public ApiTypeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ApiTypeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ApiTypeNotFoundException(message); + return new ApiTypeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return DEFAULT_MESSAGE; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusArrivalNodeNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusArrivalNodeNotFoundException.java index a8700eaf04..892f70512c 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusArrivalNodeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusArrivalNodeNotFoundException.java @@ -5,13 +5,24 @@ public class BusArrivalNodeNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "버스 경로 상에 해당 노드가 존재하지 않습니다."; + private final String detail; public BusArrivalNodeNotFoundException(String message) { super(message); + this.detail = null; + } + + public BusArrivalNodeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static BusArrivalNodeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusArrivalNodeNotFoundException(message); + return new BusArrivalNodeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusCacheNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusCacheNotFoundException.java index 3bdf9c0cb3..78c6c6feab 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusCacheNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusCacheNotFoundException.java @@ -5,13 +5,24 @@ public class BusCacheNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "버스 캐시가 존재하지 않습니다."; + private final String detail; public BusCacheNotFoundException(String message) { super(message); + this.detail = null; + } + + public BusCacheNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static BusCacheNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusCacheNotFoundException(message); + return new BusCacheNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusNotFoundException.java index f3ef6ee4cd..d01343a8a2 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusNotFoundException.java @@ -5,13 +5,24 @@ public class BusNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "버스가 존재하지 않습니다."; + private final String detail; public BusNotFoundException(String message) { super(message); + this.detail = null; + } + + public BusNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static BusNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusNotFoundException(message); + return new BusNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusOpenApiException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusOpenApiException.java index 61b5694bf3..29223e6846 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusOpenApiException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusOpenApiException.java @@ -5,13 +5,24 @@ public class BusOpenApiException extends ExternalServiceException { private static final String DEFAULT_MESSAGE = "버스 Open API 응답이 정상적이지 않습니다."; + private final String detail; public BusOpenApiException(String message) { super(message); + this.detail = null; + } + + public BusOpenApiException(String message, String detail) { + super(message); + this.detail = detail; } public static BusOpenApiException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusOpenApiException(message); + return new BusOpenApiException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusStationNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusStationNotFoundException.java index 10bab1e3e2..4e894395e5 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusStationNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusStationNotFoundException.java @@ -5,13 +5,24 @@ public class BusStationNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "버스 정류장이 존재하지 않습니다."; + private final String detail; public BusStationNotFoundException(String message) { super(message); + this.detail = null; + } + + public BusStationNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static BusStationNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusStationNotFoundException(message); + return new BusStationNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/bus/exception/BusTypeNotFoundException.java b/src/main/java/in/koreatech/koin/domain/bus/exception/BusTypeNotFoundException.java index 80d5fbf5cc..32850f2f2b 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/exception/BusTypeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/bus/exception/BusTypeNotFoundException.java @@ -5,13 +5,24 @@ public class BusTypeNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "버스 타입이 존재하지 않습니다."; + private final String detail; public BusTypeNotFoundException(String message) { super(message); + this.detail = null; + } + + public BusTypeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static BusTypeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new BusTypeNotFoundException(message); + return new BusTypeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/community/exception/ArticleNotFoundException.java b/src/main/java/in/koreatech/koin/domain/community/exception/ArticleNotFoundException.java index e89beb102e..608cb49f37 100644 --- a/src/main/java/in/koreatech/koin/domain/community/exception/ArticleNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/community/exception/ArticleNotFoundException.java @@ -5,13 +5,24 @@ public class ArticleNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "게시글이 존재하지 않습니다."; + private final String detail; public ArticleNotFoundException(String message) { super(message); + this.detail = null; + } + + public ArticleNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ArticleNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ArticleNotFoundException(message); + return new ArticleNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return DEFAULT_MESSAGE; } } diff --git a/src/main/java/in/koreatech/koin/domain/coop/exception/MenuNotFoundException.java b/src/main/java/in/koreatech/koin/domain/coop/exception/MenuNotFoundException.java index 2abeb95135..625c0eab96 100644 --- a/src/main/java/in/koreatech/koin/domain/coop/exception/MenuNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/coop/exception/MenuNotFoundException.java @@ -1,17 +1,27 @@ package in.koreatech.koin.domain.coop.exception; -import in.koreatech.koin.domain.shop.exception.ShopCategoryNotFoundException; import in.koreatech.koin.global.exception.DataNotFoundException; public class MenuNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 메뉴입니다."; + private final String detail; public MenuNotFoundException(String message) { super(message); + this.detail = null; } - public static ShopCategoryNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopCategoryNotFoundException(message); + public MenuNotFoundException(String message, String detail) { + super(message); + this.detail = detail; + } + + public static MenuNotFoundException withDetail(String detail) { + return new MenuNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/land/exception/LandNotFoundException.java b/src/main/java/in/koreatech/koin/domain/land/exception/LandNotFoundException.java index 612a0da4a3..3dc1aa6671 100644 --- a/src/main/java/in/koreatech/koin/domain/land/exception/LandNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/land/exception/LandNotFoundException.java @@ -5,13 +5,24 @@ public class LandNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "복덕방이 존재하지 않습니다."; + private final String detail; public LandNotFoundException(String message) { super(message); + this.detail = null; + } + + public LandNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static LandNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new LandNotFoundException(message); + return new LandNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/member/exception/MemberNotFoundException.java b/src/main/java/in/koreatech/koin/domain/member/exception/MemberNotFoundException.java index 0b5b1b6412..e183b22204 100644 --- a/src/main/java/in/koreatech/koin/domain/member/exception/MemberNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/member/exception/MemberNotFoundException.java @@ -5,13 +5,24 @@ public class MemberNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 BCSD 회원입니다."; + private final String detail; public MemberNotFoundException(String message) { super(message); + this.detail = null; + } + + public MemberNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static MemberNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new MemberNotFoundException(message); + return new MemberNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/member/exception/TrackNotFoundException.java b/src/main/java/in/koreatech/koin/domain/member/exception/TrackNotFoundException.java index 1bd445d042..7ab460952e 100644 --- a/src/main/java/in/koreatech/koin/domain/member/exception/TrackNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/member/exception/TrackNotFoundException.java @@ -5,13 +5,24 @@ public class TrackNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 트랙입니다."; + private final String detail; public TrackNotFoundException(String message) { super(message); + this.detail = null; + } + + public TrackNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static TrackNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new TrackNotFoundException(message); + return new TrackNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/owner/exception/AttachmentNotFoundException.java b/src/main/java/in/koreatech/koin/domain/owner/exception/AttachmentNotFoundException.java index 76087467f7..b0f7b2c3d9 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/exception/AttachmentNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/owner/exception/AttachmentNotFoundException.java @@ -1,18 +1,28 @@ package in.koreatech.koin.domain.owner.exception; -import in.koreatech.koin.domain.shop.exception.MenuNotFoundException; import in.koreatech.koin.global.exception.DataNotFoundException; public class AttachmentNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 첨부파일입니다."; + private final String detail; public AttachmentNotFoundException(String message) { super(message); + this.detail = null; } - public static MenuNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new MenuNotFoundException(message); + public AttachmentNotFoundException(String message, String detail) { + super(message); + this.detail = detail; + } + + public static AttachmentNotFoundException withDetail(String detail) { + return new AttachmentNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return DEFAULT_MESSAGE; } } diff --git a/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCertificationException.java b/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCertificationException.java new file mode 100644 index 0000000000..99a0516c78 --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCertificationException.java @@ -0,0 +1,27 @@ +package in.koreatech.koin.domain.owner.exception; + +import in.koreatech.koin.global.exception.DuplicationException; + +public class DuplicationCertificationException extends DuplicationException { + private static final String DEFAULT_MESSAGE = "이미 인증이 완료되었습니다."; + private final String detail; + + public DuplicationCertificationException(String message) { + super(message); + this.detail = null; + } + + public DuplicationCertificationException(String message, String detail) { + super(message); + this.detail = detail; + } + + public static DuplicationCertificationException withDetail(String detail) { + return new DuplicationCertificationException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; + } +} diff --git a/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCompanyNumberException.java b/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCompanyNumberException.java index 0288e99ff0..b2dd077589 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCompanyNumberException.java +++ b/src/main/java/in/koreatech/koin/domain/owner/exception/DuplicationCompanyNumberException.java @@ -1,18 +1,28 @@ package in.koreatech.koin.domain.owner.exception; -import in.koreatech.koin.domain.shop.exception.MenuNotFoundException; import in.koreatech.koin.global.exception.DuplicationException; public class DuplicationCompanyNumberException extends DuplicationException { private static final String DEFAULT_MESSAGE = "이미 존재하는 사업자 등록번호입니다."; + private final String detail; public DuplicationCompanyNumberException(String message) { super(message); + this.detail = null; } - public static MenuNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new MenuNotFoundException(message); + public DuplicationCompanyNumberException(String message, String detail) { + super(message); + this.detail = detail; + } + + public static DuplicationCompanyNumberException withDetail(String detail) { + return new DuplicationCompanyNumberException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerAttachmentNotFoundException.java b/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerAttachmentNotFoundException.java new file mode 100644 index 0000000000..e666b5f272 --- /dev/null +++ b/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerAttachmentNotFoundException.java @@ -0,0 +1,28 @@ +package in.koreatech.koin.domain.owner.exception; + +import in.koreatech.koin.global.exception.DataNotFoundException; + +public class OwnerAttachmentNotFoundException extends DataNotFoundException { + + private static final String DEFAULT_MESSAGE = "해당 첨부파일을 찾을 수 없습니다."; + private final String detail; + + public OwnerAttachmentNotFoundException(String message) { + super(message); + this.detail = null; + } + + public OwnerAttachmentNotFoundException(String message, String detail) { + super(message); + this.detail = detail; + } + + public static OwnerAttachmentNotFoundException withDetail(String detail) { + return new OwnerAttachmentNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; + } +} diff --git a/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerNotFoundException.java b/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerNotFoundException.java index e8aae22b61..25bb86352f 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/owner/exception/OwnerNotFoundException.java @@ -5,13 +5,24 @@ public class OwnerNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 사장님입니다."; + private final String detail; public OwnerNotFoundException(String message) { super(message); + this.detail = null; + } + + public OwnerNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static OwnerNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new OwnerNotFoundException(message); + return new OwnerNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/owner/repository/OwnerAttachmentRepository.java b/src/main/java/in/koreatech/koin/domain/owner/repository/OwnerAttachmentRepository.java index fed490c0bf..e6138c2c86 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/repository/OwnerAttachmentRepository.java +++ b/src/main/java/in/koreatech/koin/domain/owner/repository/OwnerAttachmentRepository.java @@ -4,8 +4,8 @@ import org.springframework.data.repository.Repository; +import in.koreatech.koin.domain.owner.exception.OwnerAttachmentNotFoundException; import in.koreatech.koin.domain.owner.model.OwnerAttachment; -import in.koreatech.koin.global.exception.DataNotFoundException; public interface OwnerAttachmentRepository extends Repository { @@ -15,7 +15,7 @@ public interface OwnerAttachmentRepository extends Repository new DataNotFoundException("해당 첨부파일을 찾을 수 없습니다. id: " + id)); + .orElseThrow(() -> OwnerAttachmentNotFoundException.withDetail("id: " + id)); } void deleteByOwnerId(Integer ownerId); diff --git a/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java b/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java index 5a2f5fe583..c4b74b41c7 100644 --- a/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java +++ b/src/main/java/in/koreatech/koin/domain/owner/service/OwnerService.java @@ -18,6 +18,7 @@ import in.koreatech.koin.domain.owner.dto.OwnerVerifyResponse; import in.koreatech.koin.domain.owner.dto.VerifyEmailRequest; import in.koreatech.koin.domain.owner.dto.VerifyPhoneRequest; +import in.koreatech.koin.domain.owner.exception.DuplicationCertificationException; import in.koreatech.koin.domain.owner.exception.DuplicationCompanyNumberException; import in.koreatech.koin.domain.owner.model.EmailVerifyRequest; import in.koreatech.koin.domain.owner.model.Owner; @@ -39,7 +40,6 @@ import in.koreatech.koin.global.domain.email.form.OwnerRegistrationData; import in.koreatech.koin.global.domain.email.service.MailService; import in.koreatech.koin.global.domain.random.model.CertificateNumberGenerator; -import in.koreatech.koin.global.exception.DuplicationException; import in.koreatech.koin.global.exception.RequestTooFastException; import in.koreatech.koin.global.naver.service.NaverSmsService; import jakarta.validation.Valid; @@ -142,7 +142,7 @@ public void verifyResetPasswordCode(OwnerPasswordResetVerifyRequest request) { throw new IllegalArgumentException("인증번호가 일치하지 않습니다."); } if (verification.isAuthed()) { - throw new DuplicationException("이미 인증이 완료되었습니다."); + throw new DuplicationCertificationException("이미 인증이 완료되었습니다."); } verification.verify(); ownerInVerificationRedisRepository.save(verification); diff --git a/src/main/java/in/koreatech/koin/domain/ownershop/exception/EventArticleNotFoundException.java b/src/main/java/in/koreatech/koin/domain/ownershop/exception/EventArticleNotFoundException.java index a3ee0393cc..8b538ee4a9 100644 --- a/src/main/java/in/koreatech/koin/domain/ownershop/exception/EventArticleNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/ownershop/exception/EventArticleNotFoundException.java @@ -5,13 +5,24 @@ public class EventArticleNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 이벤트 입니다.."; + private final String detail; public EventArticleNotFoundException(String message) { super(message); + this.detail = null; + } + + public EventArticleNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static EventArticleNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new EventArticleNotFoundException(message); + return new EventArticleNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/MenuCategoryNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/MenuCategoryNotFoundException.java index 14b17b17ac..e2e0e1a9f6 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/MenuCategoryNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/MenuCategoryNotFoundException.java @@ -5,13 +5,24 @@ public class MenuCategoryNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 메뉴카테고리입니다."; + private final String detail; public MenuCategoryNotFoundException(String message) { super(message); + this.detail = null; + } + + public MenuCategoryNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static MenuCategoryNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new MenuCategoryNotFoundException(message); + return new MenuCategoryNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/MenuNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/MenuNotFoundException.java index e52b0449d3..9285259a21 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/MenuNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/MenuNotFoundException.java @@ -5,13 +5,24 @@ public class MenuNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 메뉴입니다."; + private final String detail; public MenuNotFoundException(String message) { super(message); + this.detail = null; + } + + public MenuNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static MenuNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new MenuNotFoundException(message); + return new MenuNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryMapNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryMapNotFoundException.java index bf1b0bf3c7..073c3a80e1 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryMapNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryMapNotFoundException.java @@ -5,13 +5,24 @@ public class ShopCategoryMapNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 카테고리맵입니다."; + private final String detail; public ShopCategoryMapNotFoundException(String message) { super(message); + this.detail = null; + } + + public ShopCategoryMapNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ShopCategoryMapNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopCategoryMapNotFoundException(message); + return new ShopCategoryMapNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryNotFoundException.java index 127ad15779..4202790018 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopCategoryNotFoundException.java @@ -5,13 +5,24 @@ public class ShopCategoryNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 카테고리입니다."; + private final String detail; public ShopCategoryNotFoundException(String message) { super(message); + this.detail = null; + } + + public ShopCategoryNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ShopCategoryNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopCategoryNotFoundException(message); + return new ShopCategoryNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopImageNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopImageNotFoundException.java index f575a5348e..f6e0f5e613 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopImageNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopImageNotFoundException.java @@ -5,13 +5,24 @@ public class ShopImageNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 상점 이미지입니다."; + private final String detail; public ShopImageNotFoundException(String message) { super(message); + this.detail = null; + } + + public ShopImageNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ShopImageNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopImageNotFoundException(message); + return new ShopImageNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopNotFoundException.java index 00a9ce0789..449c0fb516 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopNotFoundException.java @@ -5,13 +5,24 @@ public class ShopNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 상점입니다."; + private final String detail; public ShopNotFoundException(String message) { super(message); + this.detail = null; + } + + public ShopNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ShopNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopNotFoundException(message); + return new ShopNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopOpenNotFoundException.java b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopOpenNotFoundException.java index 934ed9b13f..32cdf7402c 100644 --- a/src/main/java/in/koreatech/koin/domain/shop/exception/ShopOpenNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/shop/exception/ShopOpenNotFoundException.java @@ -5,13 +5,24 @@ public class ShopOpenNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 상점 오픈입니다."; + private final String detail; public ShopOpenNotFoundException(String message) { super(message); + this.detail = null; + } + + public ShopOpenNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ShopOpenNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ShopOpenNotFoundException(message); + return new ShopOpenNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/timetable/exception/SemesterNotFoundException.java b/src/main/java/in/koreatech/koin/domain/timetable/exception/SemesterNotFoundException.java index 30f2f3f071..36f7d5673d 100644 --- a/src/main/java/in/koreatech/koin/domain/timetable/exception/SemesterNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/timetable/exception/SemesterNotFoundException.java @@ -5,13 +5,24 @@ public class SemesterNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 학기입니다."; + private final String detail; public SemesterNotFoundException(String message) { super(message); + this.detail = null; + } + + public SemesterNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static SemesterNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new SemesterNotFoundException(message); + return new SemesterNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/timetable/exception/TimeTableNotFoundException.java b/src/main/java/in/koreatech/koin/domain/timetable/exception/TimeTableNotFoundException.java index 8647ca575b..545695a490 100644 --- a/src/main/java/in/koreatech/koin/domain/timetable/exception/TimeTableNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/timetable/exception/TimeTableNotFoundException.java @@ -5,13 +5,24 @@ public class TimeTableNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 시간표입니다."; + private final String detail; public TimeTableNotFoundException(String message) { super(message); + this.detail = null; + } + + public TimeTableNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static TimeTableNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new TimeTableNotFoundException(message); + return new TimeTableNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/user/exception/DuplicationNicknameException.java b/src/main/java/in/koreatech/koin/domain/user/exception/DuplicationNicknameException.java index a2e01fdf7f..24248cbe80 100644 --- a/src/main/java/in/koreatech/koin/domain/user/exception/DuplicationNicknameException.java +++ b/src/main/java/in/koreatech/koin/domain/user/exception/DuplicationNicknameException.java @@ -5,13 +5,24 @@ public class DuplicationNicknameException extends DuplicationException { private static final String DEFAULT_MESSAGE = "이미 존재하는 닉네임입니다."; + private final String detail; public DuplicationNicknameException(String message) { super(message); + this.detail = null; + } + + public DuplicationNicknameException(String message, String detail) { + super(message); + this.detail = detail; } public static DuplicationNicknameException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new DuplicationNicknameException(message); + return new DuplicationNicknameException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/user/exception/UserNotFoundException.java b/src/main/java/in/koreatech/koin/domain/user/exception/UserNotFoundException.java index 1069eb3860..e478866726 100644 --- a/src/main/java/in/koreatech/koin/domain/user/exception/UserNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/user/exception/UserNotFoundException.java @@ -5,13 +5,24 @@ public class UserNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 사용자입니다."; + private final String detail; public UserNotFoundException(String message) { super(message); + this.detail = null; + } + + public UserNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static UserNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new UserNotFoundException(message); + return new UserNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/domain/version/exception/VersionTypeNotFoundException.java b/src/main/java/in/koreatech/koin/domain/version/exception/VersionTypeNotFoundException.java index d18a5f363e..b9c723cb2f 100644 --- a/src/main/java/in/koreatech/koin/domain/version/exception/VersionTypeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/domain/version/exception/VersionTypeNotFoundException.java @@ -5,13 +5,24 @@ public class VersionTypeNotFoundException extends DataNotFoundException { public static final String DEFAULT_MESSAGE = "존재하지 않는 버전 타입입니다."; + private final String detail; public VersionTypeNotFoundException(String message) { super(message); + this.detail = null; + } + + public VersionTypeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static VersionTypeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new VersionTypeNotFoundException(message); + return new VersionTypeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/auth/exception/AuthenticationException.java b/src/main/java/in/koreatech/koin/global/auth/exception/AuthenticationException.java index a0ae30f740..a138c75a38 100644 --- a/src/main/java/in/koreatech/koin/global/auth/exception/AuthenticationException.java +++ b/src/main/java/in/koreatech/koin/global/auth/exception/AuthenticationException.java @@ -1,15 +1,24 @@ package in.koreatech.koin.global.auth.exception; public class AuthenticationException extends RuntimeException { - private static final String DEFAULT_MESSAGE = "올바르지 않은 인증정보입니다."; + private final String detail; public AuthenticationException(String message) { super(message); + this.detail = null; + } + + public AuthenticationException(String message, String detail) { + super(message); + this.detail = detail; } public static AuthenticationException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new AuthenticationException(message); + return new AuthenticationException(DEFAULT_MESSAGE, detail); + } + + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/auth/exception/AuthorizationException.java b/src/main/java/in/koreatech/koin/global/auth/exception/AuthorizationException.java index cdf2effbe5..90f8772f1d 100644 --- a/src/main/java/in/koreatech/koin/global/auth/exception/AuthorizationException.java +++ b/src/main/java/in/koreatech/koin/global/auth/exception/AuthorizationException.java @@ -3,13 +3,23 @@ public class AuthorizationException extends RuntimeException { private static final String DEFAULT_MESSAGE = "권한이 없습니다."; + private final String detail; public AuthorizationException(String message) { super(message); + this.detail = null; + } + + public AuthorizationException(String message, String detail) { + super(message); + this.detail = detail; } public static AuthorizationException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new AuthorizationException(message); + return new AuthorizationException(DEFAULT_MESSAGE, detail); + } + + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/domain/email/exception/DuplicationEmailException.java b/src/main/java/in/koreatech/koin/global/domain/email/exception/DuplicationEmailException.java index b650fb0259..c597ad4fc3 100644 --- a/src/main/java/in/koreatech/koin/global/domain/email/exception/DuplicationEmailException.java +++ b/src/main/java/in/koreatech/koin/global/domain/email/exception/DuplicationEmailException.java @@ -5,13 +5,24 @@ public class DuplicationEmailException extends DuplicationException { private static final String DEFAULT_MESSAGE = "존재하는 이메일입니다."; + private final String detail; public DuplicationEmailException(String message) { super(message); + this.detail = null; + } + + public DuplicationEmailException(String message, String detail) { + super(message); + this.detail = detail; } public static DuplicationEmailException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new DuplicationEmailException(message); + return new DuplicationEmailException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/domain/email/exception/VerifyNotFoundException.java b/src/main/java/in/koreatech/koin/global/domain/email/exception/VerifyNotFoundException.java index 3755a302bf..0e63865631 100644 --- a/src/main/java/in/koreatech/koin/global/domain/email/exception/VerifyNotFoundException.java +++ b/src/main/java/in/koreatech/koin/global/domain/email/exception/VerifyNotFoundException.java @@ -6,12 +6,23 @@ public class VerifyNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 인증정보입니다."; + private final String detail; + public VerifyNotFoundException(String message) { super(message); + this.detail = null; + } + + public VerifyNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static VerifyNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new VerifyNotFoundException(message); + return new VerifyNotFoundException(DEFAULT_MESSAGE, detail); + } + + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/domain/notification/exception/NotificationSubscribeNotFoundException.java b/src/main/java/in/koreatech/koin/global/domain/notification/exception/NotificationSubscribeNotFoundException.java index 0737c3a163..a602bcb565 100644 --- a/src/main/java/in/koreatech/koin/global/domain/notification/exception/NotificationSubscribeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/global/domain/notification/exception/NotificationSubscribeNotFoundException.java @@ -5,13 +5,24 @@ public class NotificationSubscribeNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 알림 구독입니다."; + private final String detail; public NotificationSubscribeNotFoundException(String message) { super(message); + this.detail = null; + } + + public NotificationSubscribeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static NotificationSubscribeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new NotificationSubscribeNotFoundException(message); + return new NotificationSubscribeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/domain/notification/exception/SubscribeNotFoundException.java b/src/main/java/in/koreatech/koin/global/domain/notification/exception/SubscribeNotFoundException.java index 548a2c0adf..b47c6538d1 100644 --- a/src/main/java/in/koreatech/koin/global/domain/notification/exception/SubscribeNotFoundException.java +++ b/src/main/java/in/koreatech/koin/global/domain/notification/exception/SubscribeNotFoundException.java @@ -5,13 +5,24 @@ public class SubscribeNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "존재하지 않는 알림타입입니다."; + private final String detail; public SubscribeNotFoundException(String message) { super(message); + this.detail = null; + } + + public SubscribeNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static SubscribeNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new SubscribeNotFoundException(message); + return new SubscribeNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/domain/upload/exception/ImageUploadDomainNotFoundException.java b/src/main/java/in/koreatech/koin/global/domain/upload/exception/ImageUploadDomainNotFoundException.java index 71783382fb..5050cc34d4 100644 --- a/src/main/java/in/koreatech/koin/global/domain/upload/exception/ImageUploadDomainNotFoundException.java +++ b/src/main/java/in/koreatech/koin/global/domain/upload/exception/ImageUploadDomainNotFoundException.java @@ -5,13 +5,24 @@ public class ImageUploadDomainNotFoundException extends DataNotFoundException { private static final String DEFAULT_MESSAGE = "타입이 존재하지 않습니다."; + private final String detail; public ImageUploadDomainNotFoundException(String message) { super(message); + this.detail = null; + } + + public ImageUploadDomainNotFoundException(String message, String detail) { + super(message); + this.detail = detail; } public static ImageUploadDomainNotFoundException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new ImageUploadDomainNotFoundException(message); + return new ImageUploadDomainNotFoundException(DEFAULT_MESSAGE, detail); + } + + @Override + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/exception/DataNotFoundException.java b/src/main/java/in/koreatech/koin/global/exception/DataNotFoundException.java index a5f842cc2a..aa770e315a 100644 --- a/src/main/java/in/koreatech/koin/global/exception/DataNotFoundException.java +++ b/src/main/java/in/koreatech/koin/global/exception/DataNotFoundException.java @@ -1,8 +1,10 @@ package in.koreatech.koin.global.exception; -public class DataNotFoundException extends RuntimeException { +public abstract class DataNotFoundException extends RuntimeException { public DataNotFoundException(String message) { super(message); } + + public abstract String getDetail(); } diff --git a/src/main/java/in/koreatech/koin/global/exception/DuplicationException.java b/src/main/java/in/koreatech/koin/global/exception/DuplicationException.java index e36f4a3c02..9873d3683b 100644 --- a/src/main/java/in/koreatech/koin/global/exception/DuplicationException.java +++ b/src/main/java/in/koreatech/koin/global/exception/DuplicationException.java @@ -1,8 +1,10 @@ package in.koreatech.koin.global.exception; -public class DuplicationException extends RuntimeException { +public abstract class DuplicationException extends RuntimeException { public DuplicationException(String message) { super(message); } + + public abstract String getDetail(); } diff --git a/src/main/java/in/koreatech/koin/global/exception/ExternalServiceException.java b/src/main/java/in/koreatech/koin/global/exception/ExternalServiceException.java index 6513383e0d..545775c0a7 100644 --- a/src/main/java/in/koreatech/koin/global/exception/ExternalServiceException.java +++ b/src/main/java/in/koreatech/koin/global/exception/ExternalServiceException.java @@ -1,8 +1,10 @@ package in.koreatech.koin.global.exception; -public class ExternalServiceException extends RuntimeException { +public abstract class ExternalServiceException extends RuntimeException { public ExternalServiceException(String message) { super(message); } + + public abstract String getDetail(); } diff --git a/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java b/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java index 2bee17abb2..6b40086317 100644 --- a/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java +++ b/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java @@ -55,7 +55,7 @@ public ResponseEntity handleAuthorizationException( HttpServletRequest request, AuthorizationException e ) { - log.warn(e.getMessage()); + log.warn(e.getMessage() + e.getDetail()); requestLogging(request); return buildErrorResponse(HttpStatus.FORBIDDEN, e.getMessage()); } @@ -65,7 +65,7 @@ public ResponseEntity handleAuthenticationException( HttpServletRequest request, AuthenticationException e ) { - log.warn(e.getMessage()); + log.warn(e.getMessage() + e.getDetail()); requestLogging(request); return buildErrorResponse(HttpStatus.UNAUTHORIZED, e.getMessage()); } @@ -75,7 +75,7 @@ public ResponseEntity handleDataNotFoundException( HttpServletRequest request, DataNotFoundException e ) { - log.warn(e.getMessage()); + log.warn(e.getMessage() + e.getDetail()); requestLogging(request); return buildErrorResponse(HttpStatus.NOT_FOUND, e.getMessage()); } @@ -85,7 +85,7 @@ public ResponseEntity handleDataNotFoundException( HttpServletRequest request, DuplicationException e ) { - log.warn(e.getMessage()); + log.warn(e.getMessage() + e.getDetail()); requestLogging(request); return buildErrorResponse(HttpStatus.CONFLICT, e.getMessage()); } @@ -105,7 +105,7 @@ public ResponseEntity handleExternalServiceException( HttpServletRequest request, ExternalServiceException e ) { - log.warn(e.getMessage()); + log.warn(e.getMessage() + e.getDetail()); requestLogging(request); return buildErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage()); } @@ -182,7 +182,7 @@ protected ResponseEntity handleMethodArgumentNotValid( HttpStatusCode status, WebRequest webRequest ) { - HttpServletRequest request = ((ServletWebRequest) webRequest).getRequest(); + HttpServletRequest request = ((ServletWebRequest)webRequest).getRequest(); log.warn("검증과정에서 문제가 발생했습니다. uri: {} {}, ", request.getMethod(), request.getRequestURI(), ex); requestLogging(request); String errorMessages = ex.getBindingResult().getAllErrors().stream() diff --git a/src/main/java/in/koreatech/koin/global/naver/exception/DuplicationPhoneException.java b/src/main/java/in/koreatech/koin/global/naver/exception/DuplicationPhoneException.java index 55807e998e..525ef1ffcd 100644 --- a/src/main/java/in/koreatech/koin/global/naver/exception/DuplicationPhoneException.java +++ b/src/main/java/in/koreatech/koin/global/naver/exception/DuplicationPhoneException.java @@ -5,13 +5,23 @@ public class DuplicationPhoneException extends DuplicationException { private static final String DEFAULT_MESSAGE = "존재하는 휴대폰번호입니다."; + private final String detail; public DuplicationPhoneException(String message) { super(message); + this.detail = null; + } + + public DuplicationPhoneException(String message, String detail) { + super(message); + this.detail = detail; } public static DuplicationPhoneException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new DuplicationPhoneException(message); + return new DuplicationPhoneException(DEFAULT_MESSAGE, detail); + } + + public String getDetail() { + return detail; } } diff --git a/src/main/java/in/koreatech/koin/global/naver/sms/NaverSmsException.java b/src/main/java/in/koreatech/koin/global/naver/sms/NaverSmsException.java index 2e5e47b229..91afa1fe47 100644 --- a/src/main/java/in/koreatech/koin/global/naver/sms/NaverSmsException.java +++ b/src/main/java/in/koreatech/koin/global/naver/sms/NaverSmsException.java @@ -5,13 +5,23 @@ public class NaverSmsException extends ExternalServiceException { private static final String DEFAULT_MESSAGE = "Naver SENS API 호출 과정에서 문제가 발생했습니다."; + private final String detail; public NaverSmsException(String message) { super(message); + this.detail = null; + } + + public NaverSmsException(String message, String detail) { + super(message); + this.detail = detail; } public static NaverSmsException withDetail(String detail) { - String message = String.format("%s %s", DEFAULT_MESSAGE, detail); - return new NaverSmsException(message); + return new NaverSmsException(DEFAULT_MESSAGE, detail); + } + + public String getDetail() { + return detail; } }