IMethodReturnMessage.Exception 属性

定义

获取在方法调用期间引发的异常。Gets the exception thrown during the method call.

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

属性值

Exception

方法调用的异常对象;或者如果该方法未引发异常,则为 nullThe 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.

示例

下面的示例代码演示了一个重写 RealProxy 的自定义代理,以便编写返回消息信息,包括该方法是否引发异常。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

适用于