簡體   English   中英

存在連接問題時處理SOAP致命錯誤

[英]Handle SOAP fatal error when there is a connection issue

我正在嘗試使用php 5.6中的WSDL文件連接到soap服務

如果我在網絡上,下面的代碼片段可以正常工作,但是如果我斷開連接,則會出現致命錯誤。

try {
    $soap_client = new SoapClient($wsdl_file, ['exceptions' => true]);
}
catch (SoapFault $fault) {
    echo 'poop';
}
catch (Exception $exception) {
    echo 'pee';
}

編輯:它似乎確實與SoapFault做了一些,因為我可以看到我的'便便'調試消息,但它仍然會導致致命錯誤

這些是我得到的錯誤

Warning (2): SoapClient(): php_network_get_addresses: getaddrinfo failed: No such host is known.
Warning (2): SoapClient(http://soap.service.com/serivce.svc) [soapclient.soapclient]: failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known.
Error: SOAP-ERROR: Parsing Schema: can't import schema from 'http://soap.service.com/serivce.svc'

我該如何優雅地處理錯誤,以便php繼續運行,所以我可以設置一個變量並呈現HTML頁面,指示存在連接問題

這是一個Cakephp問題

https://github.com/cakephp/cakephp/issues/8501

$restore = error_reporting(0);
try {
    $soap_client = new SoapClient($wsdl_file, ['exceptions' => true]);
}
catch (SoapFault $e) {
    trigger_error($e->getMessage()); // Overwrites E_ERROR with E_USER_NOTICE
}
finally {
    error_reporting($restore);
}

您應該考慮所有異常類型。 嘗試將Exception而不是SoapFault放入catch語句中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM