0

我想知道我的 SOAP 代码中的原始异常详细信息是什么,我有一个 SOAP 服务器来处理如下请求:

$options = array(
    'soap_version' => SOAP_1_2,
    'actor' => someUriAString,
    'encoding' => 'UTF-8',
    'uri' => someUriAString);
$server = new Server(null, $options);
$server->setClass('SomeClass');
$server->setReturnResponse(true);
$serverResponse = $server->handle();

然后我检查是否发生异常,如下所示:

if ($serverResponse instanceof \SoapFault) {
    //log the $serverResponse exception details
}

但是当我记录这个异常时,我得到了这样的东西:

exception 'Exception' with message 'SoapFault exception: [Receiver] Unknown error 

我需要知道的是原始异常细节......比如SQL异常,或者例如ORMException,......等等。即我需要确切的原始异常详细信息...

我已经尝试registerFaultException过以下示例:

$server->registerFaultException('Doctrine\ORM\ORMException');

我不知道这是否正确,但问题是可能会出现其他类型的异常,我无法注册它们,因为我不知道我的代码中可能会出现什么异常!

4

1 回答 1

0

这取决于期望是如何设置的,但您可以获得上一个异常消息:

$message->getPrevious();

你可以像这样迭代它们:

if($message instanceof \Exception) {
    do {
       echo sprintf(
            "%s:%d %s (%d) [%s]\n", 
            $message->getFile(), 
            $message->getLine(), 
            $message->getMessage(), 
            $message->getCode(), 
            get_class($message)
       );
    }
    while($message = $message->getPrevious());
}
于 2013-07-02T14:26:10.660 回答