如何访问PHP异常的内部异常

如何访问PHP异常的内部异常,php,exception,soap,exception-handling,soap-client,Php,Exception,Soap,Exception Handling,Soap Client,当我让客户机指向WSDL,并且请求在服务器端无效时,捕获的异常的消息如下所示: 执行命令定义时出错。有关详细信息,请参见内部异常 这是我的一个try-catch块的示例: try { $soapCallResult = $client->myWSDLMethod(array(...)); } catch (Exception $e) { echo 'Exception in myWSDLMethod: ', $e->getMessage(), PHP_EOL; }

当我让客户机指向WSDL,并且请求在服务器端无效时,捕获的异常的消息如下所示:

执行命令定义时出错。有关详细信息,请参见内部异常

这是我的一个try-catch块的示例:

try {
    $soapCallResult = $client->myWSDLMethod(array(...));
} catch (Exception $e) {
    echo 'Exception in myWSDLMethod: ',  $e->getMessage(), PHP_EOL;
}
当我var_转储时,数组只指向我进行此调用的文件和行,这一点都不有用。。。在中似乎没有getInnerExceptionMessage方法或类似的方法。那么我应该如何访问该内部异常呢?

如果您使用var_dump$e->detail,您可以看到整个异常的detail对象,并通过以下路径访问内部异常的消息:

$e->detail->ExceptionDetail->InnerException->Message
您可能有兴趣从此对象打印更多字段。这里有一个垃圾场:

object(stdClass)[?]
  public 'ExceptionDetail' => 
    object(stdClass)[?]
      public 'HelpLink' => null
      public 'InnerException' => 
        object(stdClass)[?]
          public 'HelpLink' => null
          public 'InnerException' => null
          public 'Message' => string 'SERVER ERROR MSG: ...' (length=?)
          public 'StackTrace' => string '   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)'... (length=?)
          public 'Type' => string 'System.Data.SqlClient.SqlException' (length=34)
      public 'Message' => string 'An error occurred while executing the command definition. See the inner exception for details.' (length=94)
      ...
希望能有帮助