DeadObjectException Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The object you are calling has died, because its hosting process no longer exists, or there has been a low-level binder error.
[Android.Runtime.Register("android/os/DeadObjectException", DoNotGenerateAcw=true)]
public class DeadObjectException : Android.OS.RemoteException
[<Android.Runtime.Register("android/os/DeadObjectException", DoNotGenerateAcw=true)>]
type DeadObjectException = class
inherit RemoteException
- Inheritance
- Derived
- Attributes
Remarks
The object you are calling has died, because its hosting process no longer exists, or there has been a low-level binder error.
If you get this exception from a system service, the error is usually nonrecoverable as the framework will restart. If you receive this error from an app, at a minimum, you should recover by resetting the connection. For instance, you should drop the binder, clean up associated state, and reset your connection to the service which threw this error. In order to simplify your error recovery paths, you may also want to "simply" restart your process. However, this may not be an option if the service you are talking to is unreliable or crashes frequently.
If this isn't from a service death and is instead from a low-level binder error, it will be from: <ul> <li> a one-way call queue filling up (too many one-way calls) <li> from the binder buffer being filled up, so that the transaction is rejected. </ul>
In these cases, more information about the error will be logged. However, there isn't a good way to differentiate this information at runtime. So, you should handle the error, as if the service died.
Java documentation for android.os.DeadObjectException.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
| Name | Description |
|---|---|
| DeadObjectException() |
Initializes a new instance of the DeadObjectException class. |
| DeadObjectException(IntPtr, JniHandleOwnership) |
A constructor used when creating managed representations of JNI objects; called by the runtime. |
| DeadObjectException(String) |
Initializes a new instance of the DeadObjectException class. |
Fields
| Name | Description |
|---|---|
| is_generated |
Indicates whether this throwable was generated by the binding. (Inherited from Throwable) |
Properties
| Name | Description |
|---|---|
| Cause |
Returns the cause of this throwable or |
| Class |
Gets the runtime class of this throwable. (Inherited from Throwable) |
| Handle |
The handle to the underlying Android instance. (Inherited from Throwable) |
| JavaStackTrace |
Gets the Java stack trace captured from the throwable. (Inherited from JavaException) |
| JniIdentityHashCode |
Gets the identity hash code assigned to this Java peer by the interop runtime. (Inherited from Throwable) |
| JniManagedPeerState |
Gets the state flags last assigned by the runtime. (Inherited from JavaException) |
| JniPeerMembers |
Provides JNI peer-member metadata for this type. |
| LocalizedMessage |
Creates a localized description of this throwable. (Inherited from Throwable) |
| Message |
Returns the detail message string of this throwable. (Inherited from Throwable) |
| PeerReference |
Gets the JNI object reference for this Java peer. (Inherited from Throwable) |
| StackTrace |
Gets a string representation of the stack trace for this throwable. (Inherited from Throwable) |
| ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
| ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
Methods
| Name | Description |
|---|---|
| AddSuppressed(Throwable) |
Appends the specified exception to the exceptions that were suppressed in order to deliver this exception. (Inherited from Throwable) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Delegates construction of this peer to the runtime's value manager. (Inherited from JavaException) |
| Dispose() |
Releases the resources held by this Java peer. (Inherited from Throwable) |
| Dispose(Boolean) |
Releases the resources held by this Java peer. (Inherited from Throwable) |
| DisposeUnlessReferenced() |
Asks the value manager to dispose this peer unless its mapping retains this same managed instance. (Inherited from JavaException) |
| Equals(Object) |
Tests whether another managed peer refers to the same Java object. (Inherited from JavaException) |
| FillInStackTrace() |
Fills in the execution stack trace. (Inherited from Throwable) |
| GetHashCode() |
Returns a hash code value for the object. (Inherited from JavaException) |
| GetStackTrace() |
Provides programmatic access to the stack trace information printed by
|
| GetSuppressed() |
Returns an array containing all of the exceptions that were
suppressed, typically by the |
| InitCause(Throwable) |
Initializes the cause of this throwable to the specified value. (Inherited from Throwable) |
| PrintStackTrace() |
Prints this throwable and its backtrace to the standard error stream. (Inherited from Throwable) |
| PrintStackTrace(PrintStream) |
Prints this throwable and its backtrace to the specified print stream. (Inherited from Throwable) |
| PrintStackTrace(PrintWriter) |
Prints this throwable and its backtrace to the specified print writer. (Inherited from Throwable) |
| RethrowAsRuntimeException() |
Rethrow this as an unchecked runtime exception. (Inherited from RemoteException) |
| RethrowFromSystemServer() |
Rethrow this exception when we know it came from the system server. (Inherited from RemoteException) |
| SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Throwable) |
| SetJavaStackTrace(JniObjectReference) |
Refreshes the captured Java stack trace from a throwable. (Inherited from JavaException) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Stores a reference value in the control block without creating a JNI reference copy. (Inherited from JavaException) |
| SetStackTrace(StackTraceElement[]) |
Sets the stack trace elements that will be returned by
|
| ToString() |
Converts this value to a string. (Inherited from Throwable) |
| UnregisterFromRuntime() |
Unregisters this Java peer from the interop runtime. (Inherited from Throwable) |
Explicit Interface Implementations
| Name | Description |
|---|---|
| IJavaPeerable.Disposed() |
Marks this peer as disposed and calls |
| IJavaPeerable.Finalized() |
Marks this peer as disposed and calls |
| IJavaPeerable.JniObjectReferenceControlBlock |
Gets the native control-block pointer used by this peer. (Inherited from JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Stores the identity hash code supplied by the runtime. (Inherited from JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Replaces the stored managed peer state flags. (Inherited from JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Updates the peer reference and releases a disposed peer's control block when the reference is invalid. (Inherited from JavaException) |
Extension Methods
| Name | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Gets the JNI name of the type of the instance |
| JavaAs<TResult>(IJavaPeerable) |
Try to coerce |
| JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
| JavaCast<TResult>(IJavaObject) |
Reuses a compatible managed peer or obtains a wrapper of the requested type. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Try to coerce |