2013-10-10 3 views
0

У меня сложное время, ловящее проблему аутентификации SoapClient. Когда мой код выполняется, Laravel заявляет, что он бросает ErrorException, но я не могу его поймать, независимо от того, какой код я использую. Я помещаю Laravel в случае, если какая-то магия происходит где-то, о чем я не знаю, потому что App :: error() еще раз вызовет эту ошибку.Ловля исключения при создании нового SoapClient правильно

try { 
    $client = new SoapClient(
     $this->serviceUrl . $this->clients[$clientName], 
     array(
      'login'  => $this->username, 
      'password' => $this->password, 
      'exceptions' => true, 
     ) 
    ); 
} catch (SoapFault $e) { 
    die('soapfault never fires!'); 
} catch (Exception $e) { 
    die('exception won\t t'); 
} catch (ErrorException $e) { 
    die('error exception also doesn\'t error'); 
} 

Согласно Laravel, исключение ErrorException выбрасывается, но приведенный выше код не улавливает его.

ErrorException 

SoapClient::SoapClient(https://control.akamai.com/nmrws/services/RealtimeReports?wsdl) [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized 

ответ

1

Добавить обратную косую черту перед тем типов исключений (например Exception становится \Exception).

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

Смежные вопросы