我想知道是否有可能在PHP中捕获自定义SoapFaults。我无法使用这段代码:
class UAC_ValidationFault extends SoapFault{
public function __construct($code, $message){
parent::__construct($code, $message);
}
}
所以在我的web服务中,我以这种方式抛出错误:
throw new UAC_ValidationFault("666", "Test error");
当我尝试捕获此错误时,我想知道自定义错误的Classname,但它始终是“SoapFault”:
try{
$return = $client->testErrorThrow('bogus'); // $client is SoapClient instance
print_r($return);
}
catch(UAC_ValidationFault $e){
var_dump(get_class($e)); // isn't catched
}
catch(Exception $e){
var_dump(get_class($e)); // returns "SoapFault"
}
有什么建议吗?
答案 0 :(得分:0)
您可以创建一个包装类的SoapClient。抓住SoapFault,然后根据error_code抛出自定义异常。