PHP中的自定义SoapFault

时间:2011-09-05 10:37:17

标签: php exception soap

我想知道是否有可能在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"
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个包装类的SoapClient。抓住SoapFault,然后根据error_code抛出自定义异常。