异常的参数错误([string $ exception [,long $ code]])

时间:2012-09-04 08:26:57

标签: php

一直盯着这个例外,并且没有任何线索可能出错。

  

致命错误:Exception([string $exception [, long $code ]])

的参数错误

看起来非常简单,Exception需要一条消息和一个可选代码,但由于某种原因代码不符合我的要求。即使我删除了最后一个参数$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');
}

1 个答案:

答案 0 :(得分:1)

虽然我从未使用过SOAP技术,所以只从SoapClient manual

中获取
  

例外选项是一个布尔值,用于定义soap错误   抛出SoapFault

类型的异常

soapFault 语法为

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

因此我建议您查看手册上的所有示例。在这里我有一个例子

要获取自定义肥皂错误代码,请使用catch $e->faultcode代替$e->getCode

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

又一个例子:

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(); 
        } 

希望它有所帮助。