Redigera

Dela via


IMethodReturnMessage.Exception Property

Definition

Gets the exception thrown during the method call.

public:
 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.

Attributes

Exceptions

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

Examples

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 );
   }
   else
   {
      Console::WriteLine(  "{0} does not raise an exception.",
         myIMethodReturnMessage->MethodName );
   }

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

   IMethodReturnMessage myIMethodReturnMessage =
      RemotingServices.ExecuteMessage(myMarshalByRefObject,myCallMessage);
   if(myIMethodReturnMessage.Exception != null)
      Console.WriteLine(myIMethodReturnMessage.MethodName +
         " raised an exception.");
   else
      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.")
   Else
      Console.WriteLine(myIMethodReturnMessage.MethodName + " does not raised an exception.")
   End If
   
   Return myIMethodReturnMessage
End Function 'Invoke

Applies to