@Retention(value=CLASS) @Target(value=METHOD) @Documented public @interface Signature
Throwable
return type.
Given the following exception and message bundle interface method the InvalidIntValueException(final RuntimeException cause, final String msg, final int value)
constructor would be used.
public class InvalidIntValueException extends RuntimeException {
private final RuntimeException causeAsRuntime;
private final int value;
public InvalidIntValueException(final Throwable cause, final String msg, final int value) {
super(msg, cause);
causeAsRuntime = new RuntimeException(cause);
this.value = value;
}
public InvalidIntValueException(final RuntimeException cause, final String msg, final int value) {
super(msg, cause);
causeAsRuntime = cause;
this.value = value;
}
public InvalidIntValueException(final RuntimeException cause, final String msg, final Integer value) {
super(msg, cause);
causeAsRuntime = cause;
this.value = value;
}
}
@Message("Invalid value %d")
@Signature(causeIndex = 0, messageIndex = 1, value = {RuntimeException.class, String.class, int.class}
InvalidIntValueException invalidValue(@Cause RuntimeException cause, @Param int value);
Modifier and Type | Required Element and Description |
---|---|
Class<?>[] |
value
An array of types matching the exact signature to use for the exception being created.
|
Modifier and Type | Optional Element and Description |
---|---|
int |
causeIndex
The index for the cause of the exception being created.
|
int |
messageIndex
The index for the message.
|
public abstract Class<?>[] value
public abstract int causeIndex
Cause
annotation can still be used and the
Throwable.initCause(Throwable)
will be used to initialize the cause of the exception.public abstract int messageIndex
Message.value()
. This is a required
value defaulting to 0 which would be the first parameter.Copyright © 2019 JBoss by Red Hat. All rights reserved.