我想知道我的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');
我不知道这是否正确,但问题是可能会出现其他类型的异常,我无法注册它们,因为我不知道我的代码中可能发生什么异常!
答案 0 :(得分: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());
}