Ошибка возврата SoapClient в PHP

В PHP, если вы пытаетесь создать экземпляр нового SoapClient , а WSDL недоступен (сервер вниз или что-то еще), возникает фатальная ошибка PHP:

Неустранимая ошибка: SOAP-ERROR: анализ WSDL: не удалось загрузить с « http://example.com/servlet/app/SomeService?wsdl »: не удалось загрузить внешний объект « http://example.com/servlet/app / SomeService? Wsdl "

Неустранимые ошибки в PHP, насколько я знаю, не подлежат восстановлению.

Есть ли способ отступить от этого? Можно ли избежать этой фатальной ошибки?


Изменить: я должен сказать, что я работаю на PHP 5.2, если это имеет значение.

Это уже обсуждалось:

Сам Расмус предложил следующее решение:

 <?php try { $x = @new SoapClient("non-existent.wsdl",array("exceptions" => 1)); } catch (SoapFault $E) { echo $E->faultstring; } echo "ok\n"; 

См. Этот раздел Как поймать фатальную ошибку PHP

В основном вы не можете восстановить фатальную ошибку, но вы можете обеспечить лучший опыт для пользователя при регистрации функции выключения

 register_shutdown_function('handleShutdown'); function handleShutdown(){ $error = error_get_last(); if($error !== NULL){ echo "Sorry for the inconvenience, an error just occurred."; } }