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

net.auoeke.reflect.Exceptions Maven / Gradle / Ivy

package net.auoeke.reflect;

import java.util.function.Function;

/**
 @since 4.9.0
 */
class Exceptions {
	private static final Pointer detailMessage = Pointer.of(Throwable.class, "detailMessage");
	private static final Pointer stackTrace = Pointer.of(Throwable.class, "stackTrace");
	private static final StackTraceElement[] defaultStackTrace = stackTrace.getT(new Throwable());

	public static  T message(T trouble, String message) {
		detailMessage.putReference(trouble, message);
		return trouble;
	}

	public static  T message(T trouble, Function transformer) {
		return message(trouble, transformer.apply(trouble.getMessage()));
	}

	public static  T stackTrace(T trouble, StackTraceElement[] trace) {
		stackTrace.putReference(trouble, trace);
		return trouble;
	}

	public static  T clearStackTrace(T trouble) {
		return stackTrace(trouble, defaultStackTrace);
	}

	public static  T disableStackTrace(T trouble) {
		return stackTrace(trouble, null);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy