public abstract class RxJavaErrorHandler
extends java.lang.Object
Observer.onError(Throwable)
behavior.
For example, all Exception
s can be logged using this handler even if
Observer.onError(Throwable)
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 java.lang.String |
ERROR_IN_RENDERING_SUFFIX |
Constructor and Description |
---|
RxJavaErrorHandler() |
Modifier and Type | Method and Description |
---|---|
void |
handleError(java.lang.Throwable e)
Deprecated.
|
java.lang.String |
handleOnNextValueRendering(java.lang.Object item)
Receives items causing
OnErrorThrowable.OnNextValue and gives a chance to choose the String
representation of the item in the OnNextValue stacktrace rendering. |
protected java.lang.String |
render(java.lang.Object item)
Override this method to provide rendering for specific types other than primitive types and null.
|
protected static final java.lang.String ERROR_IN_RENDERING_SUFFIX
@Deprecated public void handleError(java.lang.Throwable e)
Exception
s 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
public final java.lang.String handleOnNextValueRendering(java.lang.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 class name suffixed by
ERROR_IN_RENDERING_SUFFIX
.
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
defaultprotected java.lang.String render(java.lang.Object item) throws java.lang.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 class name 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
defaultjava.lang.InterruptedException
- if the rendering thread is interrupted