Share via

IMethodReturnMessage.Exception Property


Gets the exception thrown during the method call.

 property Exception ^ Exception { Exception ^ get(); };
public Exception Exception { get; }
public Exception Exception { [System.Security.SecurityCritical] get; }
member this.Exception : Exception
[<get: System.Security.SecurityCritical>]
member this.Exception : Exception
Public ReadOnly Property Exception As Exception

Property Value

The exception object for the method call, or null if the method did not throw an exception.



The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.


The following example code shows a custom proxy that overrides RealProxy.Invoke in order to write the return message information, including whether the method threw an exception.

virtual IMessage^ Invoke( IMessage^ myMessage ) override
   IMethodCallMessage^ myCallMessage = dynamic_cast<IMethodCallMessage^>(myMessage);

   IMethodReturnMessage^ myIMethodReturnMessage =
      RemotingServices::ExecuteMessage( myMarshalByRefObject, myCallMessage );
   if ( myIMethodReturnMessage->Exception != nullptr )
      Console::WriteLine( "{0} raised an exception.",
         myIMethodReturnMessage->MethodName );
      Console::WriteLine(  "{0} does not raise an exception.",
         myIMethodReturnMessage->MethodName );

   return myIMethodReturnMessage;
public override IMessage Invoke(IMessage myMessage)
   IMethodCallMessage myCallMessage = (IMethodCallMessage)myMessage;

   IMethodReturnMessage myIMethodReturnMessage =
   if(myIMethodReturnMessage.Exception != null)
      Console.WriteLine(myIMethodReturnMessage.MethodName +
         " raised an exception.");
      Console.WriteLine(myIMethodReturnMessage.MethodName +
         " does not raised an exception.");

   return myIMethodReturnMessage;
Public Overrides Function Invoke(myMessage As IMessage) As IMessage
   Dim myCallMessage As IMethodCallMessage = CType(myMessage, IMethodCallMessage)
   Dim myIMethodReturnMessage As IMethodReturnMessage = RemotingServices.ExecuteMessage _
                                                   (myMarshalByRefObject, myCallMessage)
   If Not (myIMethodReturnMessage.Exception Is Nothing) Then
      Console.WriteLine(myIMethodReturnMessage.MethodName + " raised an exception.")
      Console.WriteLine(myIMethodReturnMessage.MethodName + " does not raised an exception.")
   End If
   Return myIMethodReturnMessage
End Function 'Invoke

Applies to