PHPでカスタムSoapFaultsをキャッチすることが可能かどうか疑問に思っていました。私は、コードの作業のこの部分を取得することはできません。PHPのカスタムSoapFault
class UAC_ValidationFault extends SoapFault{
public function __construct($code, $message){
parent::__construct($code, $message);
}
}
は、だから私のWebサービスでは、私は、エラーをこのように投げる:
throw new UAC_ValidationFault("666", "Test error");
私は、このエラーをキャッチしようとすると、私はクラス名を知りたいですしかし、それは常に "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"
}
何か提案がありますか?
私は覚えていませんが、 '$ e'例外オブジェクトで' print_r'または 'var_dump'を実行すると、より多くの情報が得られると思います。エラーコード( '$ code')を使用して、おそらくどこからエラーが発生したかを調べることができます。 – Treffynnon
私は知っていますが、スローされたエラーのvar_dump/print_rの "UAC_ValidationFault"には何も言及されていません。それはPHPがネイティブSoapFaultsを投げたいだけです。 – ibram