private ExceptionHandler searchExceptionHandler()

in elasticjob-infra/elasticjob-restful/src/main/java/org/apache/shardingsphere/elasticjob/restful/pipeline/ExceptionHandling.java [90:107]


    private <T extends Throwable> ExceptionHandler<T> searchExceptionHandler(final Throwable cause) {
        Class<? extends Throwable> exceptionType = cause.getClass();
        ExceptionHandler<? extends Throwable> exceptionHandler = exceptionHandlers.get(exceptionType);
        if (null == exceptionHandler) {
            for (Map.Entry<Class<? extends Throwable>, ExceptionHandler<? extends Throwable>> entry : exceptionHandlers.entrySet()) {
                Class<? extends Throwable> clazz = entry.getKey();
                ExceptionHandler<? extends Throwable> handler = entry.getValue();
                if (clazz.isAssignableFrom(exceptionType)) {
                    exceptionHandler = handler;
                    break;
                }
            }
        }
        if (null == exceptionHandler) {
            exceptionHandler = DEFAULT_EXCEPTION_HANDLER;
        }
        return (ExceptionHandler<T>) exceptionHandler;
    }