All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zepben.vertxutils.routing.ExceptionHandler Maven / Gradle / Ivy

There is a newer version: 1.5.0-SNAPSHOT2
Show newest version
/*
 * Copyright 2020 Zeppelin Bend Pty Ltd
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

package com.zepben.vertxutils.routing;

import io.vertx.core.Handler;
import io.vertx.ext.web.RoutingContext;

import java.util.function.BiConsumer;


public class ExceptionHandler implements Handler {

    private final Class tClass;
    private final BiConsumer handler;

    ExceptionHandler(Class tClass, BiConsumer handler) {
        this.tClass = tClass;
        this.handler = handler;
    }

    @Override
    public void handle(RoutingContext context) {
        if (!tClass.isInstance(context.failure())) {
            context.next();
            return;
        }

        handle(tClass.cast(context.failure()), context);
    }

    private void handle(T throwable, RoutingContext handler) {
        this.handler.accept(tClass.cast(throwable), handler);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy