4

この例外をしばらく見つめていて、何がうまくいかないのか見当がつきません。

致命的なエラー: のパラメータが間違っていますException([string $exception [, long $code ]])

例外はメッセージとオプションのコードを期待していますが、何らかの理由でコードが私に同意しません。(スタックトレースを保持するために)最後のパラメータを削除しても$e、この同じエラーが表示されます。

try {
    // ...
} catch (Exception $e) {
    throw new Exception('Client cannot be created', 0, $e);
}

0コード ( ) と前の例外 ( ) の両方を省略した場合にのみ$e、エラーが正しくスローされます。

try {
    // ...
} catch (Exception $e) {
    throw new Exception('Client cannot be created');
}
4

1 に答える 1

1

私はSOAPテクノロジーを扱ったことはありませんが、 SoapClient manual

exception オプションは、soap エラーがタイプの例外をスローするかどうかを定義するブール値です。SoapFault

そしてsoapFault構文は

SoapFault::SoapFault ( string $faultcode , 
                       string $faultstring [, 
                       string $faultactor [, 
                       string $detail [, 
                       string $faultname [, 
                       string $headerfault ]]]] );

そのため、マニュアルのすべての例を確認することをお勧めします。ここで私は1つの例を手に入れました

カスタムの Soap エラー コードを取得するには、 の$e->faultcode代わりにcatch を使用し$e->getCodeます。

<?php 
try { 
    // ... 
} catch (SoapFault $e) { 
    echo $e->faultcode; 
} 
?>

もう1つの例:

try { 
            $options = array( 
                'soap_version'=>SOAP_1_1, 
                'exceptions'=>true, 
                'trace'=>1, 
                'cache_wsdl'=>WSDL_CACHE_NONE 
            ); 
            $client = new SoapClient('http://www.example.com/end_point.wsdl', $options); 

        } catch (Exception $e) { 
            echo "<h2>Exception Error!</h2>"; 
            echo $e->getMessage(); 
        } 

それが役に立てば幸い。

于 2012-09-04T08:50:59.517 に答える