Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Přeskočit funkci pokud dojde k chybě

Bojkas
verified
rating uzivatele
21. 10. 2015 08:43:44
Ahoj,
potřeboval bych vyřešit problém s errory
Mám například 10 stránek k porovnání pomocí funkce
function porovnej($a,$b)
{
script na něco něco
}
1 porovnej("www.blabal.cz", "www.asdas.cz")
2 porovnej("www.sadasfgd.cz", "www.jtukzuj.cz")
3 porovnej("www.zuztutz.cz", "www.bnmnbm.cz")
Vše funguje podle představ, ale problém nastane, když na stránce vyskočí 404 třeba. Script běží, když nastane chyba u jedné z URL například s číslem 2, vyhodí to error.
Warning: file_get_contents(http://.........): failed to open stream: HTTP request failed! HTTP/1.1 404 not found in
Fatal error: Call to a member function find() on a non-object in
Potřebuji, aby při chybě to přeskočilo celou funkci, ideálně zapsalo do logu a pokračovalo s porovnáním na jiném řádku.
Dokáže mi někdo poradit?
Děkuji
21. 10. 2015 08:43:44
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147707
Myslím, že by šlo něco takového:
if (!@$promena = file_get_contents()) {
//loguj chybu
}
?>
Ale nejsem si jist. Zavináč by měl potlačit tu chybu.
21. 10. 2015 08:56:12
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147706
david.indra
verified
rating uzivatele
21. 10. 2015 09:10:00
vnitřek funkce:
nějaké příklady tady, tady nebo tady (php.net).
21. 10. 2015 09:10:00
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147705
Napsal david.indra;1234670
vnitřek funkce:
nějaké příklady tady, tady nebo tady (php.net).
Až na to, že to Exception nevyhazuje .... takže nic nezachytí a výsledek bude stejný.
21. 10. 2015 09:24:45
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147704
Jiří Adámek
verified
rating uzivatele
(20 hodnocení)
21. 10. 2015 09:25:20
try&catch se používá k zachycení neošetřených výjimek. Z principu je ale žádoucí, aby k neošetřeným výjimkám nedocházelo. Navíc warning není výjimkou, kterou by šlo takto zachytit.
Správné řešení je proto řešení od tomas86. Přepsáno do pochopitelnějšího tvaru:
21. 10. 2015 09:25:20
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147703
Bojkas
verified
rating uzivatele
21. 10. 2015 14:56:19
Děkuji všem
mytrix: funguje přesně jak má! :-)
21. 10. 2015 14:56:19
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147702
Bojkas
verified
rating uzivatele
18. 11. 2015 13:58:56
xx
18. 11. 2015 13:58:56
https://webtrh.cz/diskuse/preskocit-funkci-pokud-dojde-k-chybe/#reply1147701
Pro odpověď se přihlašte.
Přihlásit