public abstract class RxJavaErrorHandler extends Object
Observer.onError(Throwable) behavior.
For example, all Exceptions can be logged using this handler even if Observer is ignored or not provided when an Observable is subscribed to.
This plugin is also responsible for augmenting rendering of OnErrorThrowable.OnNextValue.
See RxJavaPlugins or the RxJava GitHub Wiki for information on configuring plugins: https://github.com/ReactiveX/RxJava/wiki/Plugins.
| Modifier and Type | Field and Description |
|---|---|
protected static String |
ERROR_IN_RENDERING_SUFFIX
|
| Constructor and Description |
|---|
RxJavaErrorHandler()
|
| Modifier and Type | Method and Description |
|---|---|
void |
handleError(Throwable
|
String |
handleOnNextValueRendering(Object
Receives items causing
OnErrorThrowable.OnNextValue and gives a chance to choose the String representation of the item in the
OnNextValue stacktrace rendering.
|
protected String |
render(Object
Override this method to provide rendering for specific types other than primitive types and null.
|
protected static final StringERROR_IN_RENDERING_SUFFIX
public void handleError(Throwablee)
Exceptions from an
Observable passed to
Observer.onError(Throwable) .
This should never throw an Exception. Make sure to try/catch(Throwable) all code inside this method implementation.
e - the
Exception
@Beta public final StringhandleOnNextValueRendering(Object item)
OnErrorThrowable.OnNextValue and gives a chance to choose the String representation of the item in the
OnNextValue stacktrace rendering. Returns
null if this type of item is not managed and should use default rendering.
Note that primitive types are always rendered as their toString() value.
If a Throwable is caught when rendering, this will fallback to the item's classname suffixed by ".errorRendering".
item - the last emitted item, that caused the exception wrapped in
OnErrorThrowable.OnNextValue
String representation of the item if one is known for its type, or null for default
@Beta protected Stringrender(Object item) throws InterruptedException
For performance and overhead reasons, this should should limit to a safe production of a short String (as large renderings will bloat up the stacktrace). Prefer to try/catch(Throwable) all code inside this method implementation.
If a Throwable is caught when rendering, this will fallback to the item's classname suffixed by ".errorRendering".
item - the last emitted item, that caused the exception wrapped in
OnErrorThrowable.OnNextValue
String representation of the item if one is known for its type, or null for default
InterruptedException - if the rendering thread is interrupted