
cc.shacocloud.mirage.restful.ExceptionHandlerExceptionResolver Maven / Gradle / Ivy
package cc.shacocloud.mirage.restful;
import cc.shacocloud.mirage.restful.bind.annotation.ExceptionHandler;
import cc.shacocloud.mirage.utils.collection.SelfSortList;
import cc.shacocloud.mirage.utils.comparator.AnnotationOrderComparator;
import cc.shacocloud.mirage.utils.comparator.Ordered;
import io.vertx.core.Future;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 一个{@link AbstractHandlerExceptionResolver},它通过{@link ExceptionHandler}方法解决异常。
*
* @see ExceptionHandlerMethodResolver
*/
public class ExceptionHandlerExceptionResolver extends AbstractHandlerExceptionResolver {
private final List exceptionHandlerResolvers = new SelfSortList<>(AnnotationOrderComparator.INSTANCE::getOrder);
private final Map, InvocableHandlerMethod> exceptionMethodHandlerCache =
new ConcurrentHashMap<>(128);
/**
* 注册异常映射处理器
*
* @param exceptionHandler 异常处理器类
*/
public void registerExceptionHandler(Object exceptionHandler) {
ExceptionHandlerMethodResolver resolver = new ExceptionHandlerMethodResolver(exceptionHandler);
if (resolver.hasExceptionMappings()) {
this.exceptionHandlerResolvers.add(resolver);
}
}
@Override
protected Future
© 2015 - 2025 Weber Informatics LLC | Privacy Policy