feat(common): 添加 BusinessException/GlobalExceptionHandler/CompanyContext/状态枚举 (T007/T008/T012-T015)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.label.common.exception;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
||||
@Getter
|
||||
public class BusinessException extends RuntimeException {
|
||||
private final String code;
|
||||
private final HttpStatus httpStatus;
|
||||
|
||||
public BusinessException(String code, String message) {
|
||||
super(message);
|
||||
this.code = code;
|
||||
this.httpStatus = HttpStatus.BAD_REQUEST;
|
||||
}
|
||||
|
||||
public BusinessException(String code, String message, HttpStatus httpStatus) {
|
||||
super(message);
|
||||
this.code = code;
|
||||
this.httpStatus = httpStatus;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.label.common.exception;
|
||||
|
||||
import com.label.common.result.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
||||
@Slf4j
|
||||
@RestControllerAdvice
|
||||
public class GlobalExceptionHandler {
|
||||
|
||||
@ExceptionHandler(BusinessException.class)
|
||||
public ResponseEntity<Result<?>> handleBusinessException(BusinessException e) {
|
||||
log.warn("业务异常: code={}, message={}", e.getCode(), e.getMessage());
|
||||
return ResponseEntity
|
||||
.status(e.getHttpStatus())
|
||||
.body(Result.failure(e.getCode(), e.getMessage()));
|
||||
}
|
||||
|
||||
@ExceptionHandler(Exception.class)
|
||||
public ResponseEntity<Result<?>> handleException(Exception e) {
|
||||
log.error("系统异常", e);
|
||||
return ResponseEntity
|
||||
.internalServerError()
|
||||
.body(Result.failure("INTERNAL_ERROR", "系统内部错误"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user