gpt4 book ai didi

PHP SoapFault 未被异常处理程序捕获

转载 作者:IT王子 更新时间:2023-10-28 23:57:31 27 4
gpt4 key购买 nike

我是 PHP 异常处理和 SOAP 的新手。出于某种原因,我无法捕捉到 SoapFault。我不知道为什么。 soap 服务器不是我的。

try { 
$contact_id = $objSoapClient->getContactIdFromVisitorId('12345');
}
catch (SoapFault $sf) {
echo "Soapfault";
}
catch (Exception $e) {
echo "Exception";
}

我故意传入错误的 ID 12345。当我启用错误时,我看到以下消息 SoapFault exception: [SOAP-ENV:Client] Invalid Visitor ID。但是,我的 catch SoapFault block 和我的 catch Exception block 都没有被命中。为什么?

最佳答案

您提交的代码似乎是正确的。这是我唯一想到的。

话虽如此,如果代码位于定义命名空间的类中,您的代码将无法工作,因为它会尝试将 Exception 引用为不存在的\namespace\Exception。允许使用诸如 catch 子句或 instanceof 表达式中的“被动”引用,因为稍后可以加载缺少的类。

为了让它工作,你必须在类名前加一个斜杠(即\Exception)来告诉 PHP 从全局空间(或者根目录,如果你想这样调用它)使用 PHP,而不是你的命名空间;

<?php

namespace test;

class Foo
{
public function bar()
{
try
{
something_that_might_break();
}
catch (\Exception $e)
{
// this will work
}
}
}

?>

你可以在这里找到很多关于命名空间的信息:http://php.net/manual/en/language.namespaces.php .

关于PHP SoapFault 未被异常处理程序捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374345/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com