class Result implements Serializable {

    public final <E extends Exception> void throwCause(final @NotNull Class<E> errorType) throws E {
        Optional<E> cause = findCause(errorType);
        if (cause.isPresent()) {
            throw cause.get();
        }
    }

    private  Result();

}