我想知道什麼是我的SOAP編碼原始異常的細節,我有一個處理的請求爲以下SOAP服務器:Zend框架2 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');
我不知道這是否是正確的,但問題是,有可能會發生其他類型的異常,我不能註冊它們,因爲我不知道我的代碼中會發生什麼異常!
我有同樣的問題,終於結束了通過捕獲所有異常(是的,'Exception'類)並手動拋出一個'SoapFault'異常。所有東西都被SoapServer捕獲並正確處理,而不使用'registerFaultException'方法。您可以使用'instanceof'或'getclass'來設置錯誤代碼,然後使用這個錯誤代碼處理客戶端的異常情況。 – OlivierH