fourcal/src/main/java/cn/palmte/work/ErrorMessageException.java

51 lines
1.4 KiB
Java

package cn.palmte.work;
import org.springframework.http.HttpStatus;
import org.springframework.util.Assert;
import java.util.function.Supplier;
/**
* @author <a href="https://github.com/TAKETODAY">Harry Yang</a>
* @since 2.0 2022/12/30 15:25
*/
public class ErrorMessageException extends NoStackTraceRuntimeException {
private final HttpStatus status;
public ErrorMessageException(/*@Nullable*/ String msg) {
this(msg, null, HttpStatus.BAD_REQUEST);
}
public ErrorMessageException(/*@Nullable*/ String msg, /*@Nullable*/ Throwable cause, HttpStatus status) {
super(msg, cause);
Assert.notNull(status, "http status is required");
this.status = status;
}
public HttpStatus getStatus() {
return status;
}
public static ErrorMessageException failed(String message) {
return new ErrorMessageException(message);
}
public static ErrorMessageException failed(String message, HttpStatus status) {
return new ErrorMessageException(message, null, status);
}
public static void notNull(Object obj, String message) {
if (obj == null) {
throw ErrorMessageException.failed(message, HttpStatus.NOT_FOUND);
}
}
public static void notNull(Object obj, Supplier<String> supplier) {
if (obj == null) {
throw new ErrorMessageException(supplier.get());
}
}
}