Php 异常的参数错误([string$Exception[,long$code]])
已经关注这个异常有一段时间了,不知道出了什么问题 致命错误:Php 异常的参数错误([string$Exception[,long$code]]),php,Php,已经关注这个异常有一段时间了,不知道出了什么问题 致命错误:异常的参数错误([string$Exception[,long$code]]) 这看起来很直截了当,异常需要一条消息和一个可选代码,尽管出于某种原因,代码不符合我的要求。即使我删除最后一个参数$e(用于保持堆栈跟踪),也会弹出相同的错误 try { // ... } catch (Exception $e) { throw new Exception('Client cannot be created', 0, $e);
异常的参数错误([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');
}
虽然我从未使用过SOAP技术,但我只是从 exceptions选项是一个布尔值,用于定义是否存在soap错误 抛出类型为的异常 soapFault的语法是
SoapFault::SoapFault ( string $faultcode ,
string $faultstring [,
string $faultactor [,
string $detail [,
string $faultname [,
string $headerfault ]]]] );
因此,我建议您检查手册上的所有示例。这是我的一颗枫树
要获取自定义Soap错误代码,请在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();
}
试试{
$options=数组(
“soap_版本”=>soap_1_1,
“例外情况”=>true,
“跟踪”=>1,
'cache\u wsdl'=>wsdl\u cache\u NONE
);
$client=新的SoapClient('http://www.example.com/end_point.wsdl美元期权);
}捕获(例外$e){
回显“异常错误!”;
echo$e->getMessage();
}
希望有帮助。@diEcho$this->service=newsoapclient(VHS_WSDL,array(“trace”=>1));不过很有趣的是,PHP文档将代码描述为一个int,但是,例外是关于一个long。看看文档哪个PHP版本?你能提供重现问题的代码吗?当前版本是5.2.7。我发现5.3支持提供前面的异常。所以我还是想删除那个参数,而我的代码并没有真正使用它,所以将它剥离为工作异常。不过,我不知道为什么带$code参数的代码不起作用。