# Interface ConsistentErrorHandler (5.0.3)

    public interface ConsistentErrorHandler extends ErrorHandler

A marker interface to indicate that all [MemcacheServiceException](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheServiceException) exceptions should be
handled by [ErrorHandler#handleServiceError(MemcacheServiceException)](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.ErrorHandler#com_google_appengine_api_memcache_ErrorHandler_handleServiceError_com_google_appengine_api_memcache_MemcacheServiceException_). This interface was
added to enable handling [MemcacheServiceException](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheServiceException) thrown by the various [MemcacheService#put(Object, Object)](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheService#com_google_appengine_api_memcache_MemcacheService_put_java_lang_Object_java_lang_Object_) methods while preserving backward compatibility with [ErrorHandler](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.ErrorHandler) which did not handle such cases.

## Implements

[ErrorHandler](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.ErrorHandler)

## Methods

### handleDeserializationError(InvalidValueException ivx)

    public abstract void handleDeserializationError(InvalidValueException ivx)

Handles deserialization errors. This method is called from either of the
[get](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheService#com_google_appengine_api_memcache_MemcacheService_get_java_lang_Object_) 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](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.LogAndContinueErrorHandler) (the
default).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `ivx` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.InvalidValueException` |

### handleServiceError(MemcacheServiceException ex)

    public abstract void handleServiceError(MemcacheServiceException ex)

Handles back-end service errors. This method is called from most of the
`MemcacheService` methods in the event of a service error. This is
also called for [MemcacheService#put(Object, Object)](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheService#com_google_appengine_api_memcache_MemcacheService_put_java_lang_Object_java_lang_Object_) when the
combined key and value size is too large.

The handler may throw any [RuntimeException](https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html), or it may simply
return for "permissive" error handling, which will generally emulate
behavior of a cache miss due to a discarded entry.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `ex` | `https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.memcache.MemcacheServiceException` |