Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SOAP obsługa błędów
wariat12
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 28.03.2015

Ostrzeżenie: (0%)
-----


Witam, mam kod, który łączy się z API za pomocą SOAP

  1. $soap = new SoapClient(null, array('location' => 'http://xx/server.php?wsdl', 'uri' => ' '));


a następnie wywołuję funkcję, która pobiera dane:
  1. $wynik = $soap->pobierz('kod', $id, $i);


Funkcja działa w pętli, gdyż wywoływana jest dla sporej ilości informacji, niestety w systemie są id, które nie istnieją i w momencie, gdy zmienna $id właśnie na coś takiego trafi, to wyrzuca błąd:

  1. Fatal error: Uncaught SoapFault exception: [1] brak id w systemie in [HTTP] Stack trace: #0 [HTTP]: SoapClient->__call('pobierz', Array) #1 [HTTP]: SoapClient->pobierz('xx...', 15746) #2 {main} thrown in [HTTP] on line 15


Jak podejść do tematu, żeby po prostu brakujące id były pomijane?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LowiczakPL
post
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Ależ to jest z obsługą wyjątków.

  1. <?php
  2. try {
  3. $client = new SoapClient("some.wsdl");
  4. $result = $client->SomeFunction(/* ... */);
  5. } catch (SoapFault $fault) {
  6. trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
  7. }
  8. ?>


Ten post edytował LowiczakPL 9.05.2016, 16:37:00
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 04:52