@Beta @GwtCompatible public final class Verify extends Object
Bill bill = remoteService.getLastUnpaidBill();
// In case bug 12345 happens again we'd rather just die
Verify.verify(bill.status() == Status.UNPAID,
"Unexpected bill status: %s", bill.status());
Note: In some cases the differences explained below can be subtle. When it's unclear which approach to use, don't worry too much about it; just pick something that seems reasonable and it will be fine.
Preconditions
class instead.
if/throw
(as illustrated above) is always acceptable; we still recommend
using our VerifyException
exception type. Throwing a plain RuntimeException
is frowned upon.
Objects.requireNonNull(Object)
is generally discouraged, since
verifyNotNull(Object)
and Preconditions.checkNotNull(Object)
perform the
same function with more clarity.
Remember that parameter values for message construction must all be computed eagerly, and autoboxing and varargs array creation may happen as well, even when the verification succeeds and the message ends up unneeded. Performance-sensitive verification checks should continue to use usual form:
Bill bill = remoteService.getLastUnpaidBill();
if (bill.status() != Status.UNPAID) {
throw new VerifyException("Unexpected bill status: " + bill.status());
}
%s
is supportedAs with Preconditions
error message template strings, only the "%s"
specifier
is supported, not the full range of Formatter
specifiers. However, note that
if the number of arguments does not match the number of occurrences of "%s"
in the
format string, Verify
will still behave as expected, and will still include all argument
values in the error message; the message will simply not be formatted exactly as intended.
Modifier and Type | Method and Description |
---|---|
static void |
verify(boolean expression)
Ensures that
expression is true , throwing a VerifyException with no
message otherwise. |
static void |
verify(boolean expression,
String errorMessageTemplate,
Object... errorMessageArgs)
Ensures that
expression is true , throwing a VerifyException with a
custom message otherwise. |
static <T> T |
verifyNotNull(T reference)
Ensures that
reference is non-null, throwing a VerifyException with a default
message otherwise. |
static <T> T |
verifyNotNull(T reference,
String errorMessageTemplate,
Object... errorMessageArgs)
Ensures that
reference is non-null, throwing a VerifyException with a custom
message otherwise. |
public static void verify(boolean expression)
expression
is true
, throwing a VerifyException
with no
message otherwise.public static void verify(boolean expression, @Nullable String errorMessageTemplate, @Nullable Object... errorMessageArgs)
expression
is true
, throwing a VerifyException
with a
custom message otherwise.expression
- a boolean expressionerrorMessageTemplate
- a template for the exception message should the
check fail. The message is formed by replacing each %s
placeholder in the template with an argument. These are matched by
position - the first %s
gets errorMessageArgs[0]
, etc.
Unmatched arguments will be appended to the formatted message in square
braces. Unmatched placeholders will be left as-is.errorMessageArgs
- the arguments to be substituted into the message
template. Arguments are converted to strings using
String.valueOf(Object)
.VerifyException
- if expression
is false
public static <T> T verifyNotNull(@Nullable T reference)
reference
is non-null, throwing a VerifyException
with a default
message otherwise.reference
, guaranteed to be non-null, for conveniencepublic static <T> T verifyNotNull(@Nullable T reference, @Nullable String errorMessageTemplate, @Nullable Object... errorMessageArgs)
reference
is non-null, throwing a VerifyException
with a custom
message otherwise.errorMessageTemplate
- a template for the exception message should the
check fail. The message is formed by replacing each %s
placeholder in the template with an argument. These are matched by
position - the first %s
gets errorMessageArgs[0]
, etc.
Unmatched arguments will be appended to the formatted message in square
braces. Unmatched placeholders will be left as-is.errorMessageArgs
- the arguments to be substituted into the message
template. Arguments are converted to strings using
String.valueOf(Object)
.reference
, guaranteed to be non-null, for convenienceCopyright © 2010-2014. All Rights Reserved.