Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]nie chce konczyc programu gdy skrypt wyrzuca blad
Forum PHP.pl > Forum > Przedszkole
Andrzej1884
Sytuacja jest taka, program wystawiający aukcje, raz na jakies czas przy metodzie doNewAuctionExt wyrzuca błąd, bo to zly numer EAN, lub coś innego ( mimo, że EAN zawsze sprawdzam, poprzeż liczenie sumy kontrolnej, no ale już nie dochodzę o co w tym chodzi bo to nie takie istotne ) chodzi o to, że wcześniej ten sam program, po tego typu błędzie leciał dalej, a teraz kończy swoje działanie i muszę go uruchamiać ręcznie jeszcze raz, nie mogę tego rozkminić, w programie mam 2 metody jedna wychwytujące błedy druga wyjatki, obie metody wyrzucaja "ładnie błędy na ekran" ( skrypt CLI ) i loguja w pliku, natomiast nie mają zadania wyjścia z programu.... ma ktoś pomysł, czy coś da się z tym zrobić.... wklejanie kodu chyba nie jest potrzebne chodzi ogólnie o myśl co to może być, jak to się robi itp. ...mi przychodzi tylko jedna myśl, że wcześniej metoda doNewAuctionExt zwracałą normalny błąd a teraz fatal błąd wink.gif choć allegro twierdzi, że w metodzie nic nie ruszało.. ja natomiast w skrypcie sporo zmieniałem

Dzięki za odpowiedzi Andrzej
YourFrog
Moja kryształowa kula mówi że jednak potrzebujemy kawałka kodu. Jeżeli wyrzuca ci fatal error to nic nie poradzisz taki jest PHP ale wątpie żeby ci dawał fatala. Jeżeli problem jest z max_timeout to php -q rozwiazuje sprawę bo jak się bawiłem w sockety na php to tak odpalałem skrypty.
Andrzej1884
Wiec takie 2 metody obsluguja mi bledy w calym skrypcie

CODE
set_error_handler( 'error_handler' );
set_exception_handler( 'exception_handler' );

function error_handler( $code, $message, $file = 0, $line = 0 )
{
$all = "Błąd: $code \nTreść: $message \nPlik: $file \nLinia: $line\n";

print $all;

$all = "\n".date('H:m:s')." ".$all;

error_log( $all, 3, 'log/log'.date('y-m-d').'.txt' );

}

function exception_handler( $e )
{
error_handler( $e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine() );
}


natomiast błąd jest wyrzucany przez następującą funkcje klasy Allegro
CODE
public function wystaw_aukcje( $localId )
{
$this->fields = array(
'sessionHandle' => self::$sessionId,
'fields' => $this->fields,
'localId' => $localId,
);

return self::$soapClient->doNewAuctionExt( $this->fields );
}


funkcje wystaw_aukcje wywołuje już w programie głównym wszystkie pola są poprawne, bo średnio na 500 aukcji wyskoczy jeden błąd zależy mi poprostu na tym, żeby ten błąd nie przerywał programu
Pyton_000
umieść wywołanie soap w bloku try {} , w cactch zwracaj true/false a poniżej ew. zawartość z wywołania
nospor
No jesli tamta klasa pluje ci wyjątkiem, a ty go nie przechwytujesz, to niestety, wylozy ci sie program....
set_exception_handler sluzy czemu innemu niz myslales
http://pl1.php.net/manual/en/function.set-...ion-handler.php
Obejrzyj podany tam przyklad.
Andrzej1884
Dzięki Panowie, rzeczywiście jak wół napisane "Execution will stop after the exception_handler is called. ", jeszcze raz dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.