public interface ErrorHandler
MemcacheService, registered with
BaseMemcacheService.setErrorHandler(ErrorHandler).
The default error handler is an instance of
LogAndContinueErrorHandler. In most cases, this will log
exceptions without throwing, which looks like a cache-miss behavior to
the caller. A less permissive alternative is StrictErrorHandler,
which will throw a MemcacheServiceException to surface errors
to callers.
To guarantee that all instances of MemcacheServiceException
are directed to the error handler, use a ConsistentErrorHandler
such as ErrorHandlers.getConsistentLogAndContinue(Level) or
ErrorHandlers.getStrict().
| Modifier and Type | Method and Description |
|---|---|
void |
handleDeserializationError(InvalidValueException ivx)
Handles deserialization errors.
|
void |
handleServiceError(MemcacheServiceException ex)
Handles back-end service errors.
|
void handleDeserializationError(InvalidValueException ivx)
get methods, if the retrieved value
cannot be deserialized. This normally indicates an application upgrade
since the cache entry was stored, and should thus be treated as a cache
miss, which is the behavior of LogAndContinueErrorHandler (the
default).void handleServiceError(MemcacheServiceException ex)
MemcacheService methods in the event of a service error. This is
also called for MemcacheService.put(Object, Object) when the
combined key and value size is too large.
The handler may throw any RuntimeException, or it may simply
return for "permissive" error handling, which will generally emulate
behavior of a cache miss due to a discarded entry.
ex - the service error exception