Резервный вариант ошибки 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, если это имеет значение.


person Yuval Adam    schedule 07.07.2011    source источник


Ответы (2)



См. эту тему Как перехватить фатальную ошибку PHP

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

register_shutdown_function('handleShutdown');
function handleShutdown(){
    $error = error_get_last();
    if($error !== NULL){
        echo "Sorry for the inconvenience, an error just occurred.";
    }
}
person Andris    schedule 07.07.2011
comment
лучшая практика - попробовать поймать наверняка. - person JDuarteDJ; 31.07.2014