Festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí Maker Faire Prague 2023 proběhne o víkendu 10. a 11. června na Výstavišti Praha.
Byla vydána verze 8.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Projekty Blink a Blinkenlights dospěly do verze 1.0. Jedná se o x86-64-linux emulátor a jeho TUI nadstavbu sloužící jako debugger. Blink je v porovnání s qemu-x86_64 menší a rychlejší.
Bylo potvrzeno, že Debian 12 s kódovým jménem Bookworm vyjde v tuto sobotu 10. června.
Byla vydána nová verze 2023.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení. Zdůraznit lze předpřipravené obrazy pro Hyper-V nebo to, že ve výchozím prostředí Xfce bylo PulseAudio nahrazeno multimediálním serverem PipeWire.
Tento týden byla vydána nová verze 1.52 webového prohlížeče Brave (Wikipedie, GitHub). Postavena je na Chromiu 114. Z novinek lze vypíchnout možnost povolit vertikální karty (vertical tabs). Také bylo představeno Brave Search API k vyhledávači Brave Search.
Matthias Clasen z Red Hatu oznámil v diskusním listu vývojářů Fedora Linuxu, že tým Red Hat Display Systems se zaměří na Wayland a podporu HDR na Linuxu a přestane spravovat RPM balíčky pro LibreOffice. V další major verzi RHELu už LibreOffice nebude. Pokud se nenajde správce balíčků pro Fedora Linux, zůstane pouze LibreOffice ve Flatpaku.
Na Steamu lze získat zdarma počítačovou hru Tell Me Why (ProtonDB). Na Epic Games Storu počítačovou hru Midnight Ghost Hunt (ProtonDB).
Společnost Meta představila (YouTube) brýle pro virtuální realitu Meta Quest 3. V prodeji budou na podzim a stát budou od 499,99 dolarů.
Byla vydána nová verze 2.41.0 distribuovaného systému správy verzí Git. Přispělo 95 vývojářů, z toho 29 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
if [[ $? == 0 ]]; then ...
, poradí někdo jak se to dělá v php? Děkuji
set_error_handler()
.
v souboru index.php function error_handler(){...} set_error_handler("error_handler"); include "error.php"; v souboru error.php include "nesmysl"; # chytne neexistujici-funkce; # nechytne neco # nechytne
throw new \Exception("Nejaky text");
Co to? Však přesně to se stane.
Pokud nějaký návratový kód nějaké fce znamená chybu aplikace tak si ten exit();
zavolej.
Zápisy jsou stejné
if [[ $? == 0 ]]; then exit 1 fi
if($value != 0){ exit(1); }Jestli chceš PHP používat jako bash, tak používej passthru(), <irony>což je ovšem rada na zlato.</irony>.
Jediný rozdíl je v tom, že v bash-i, také díky tomu, že provoláváš vlastně jednotlivé aplikace, se do $? uloží návratový kód dané aplikace (jen a pouze integer). V PHP, jak ve většině jazyků, máš funkce, které mohou vracet cokoliv.
Černobílí svět je taky hezký, ale relita je taková že je mnoho stavů, které mohou znamenat chybu a které ne a liší se kód od kódu (stejně jako v bash-i, návratový kód jiný než nula, neznamená vždy chybu, ale klidně jen požadovanou informaci.).
Pokud je to web aplikace, tak většinou to nechceš okamžitě ukončit a, nejen proto, se používají výjimky na kontrolu chyb aplikace.
$file = "/foo/bar.php"; if(file_exists($file)) { if(!require_once($file)) { msgError('500'); exit(); } } else { msgError('404'); }Jedno include a pul stránky kódu, to je hnus..
Běžné je:
require_once('/foo/bar.php');
Pokud to opravdu chceš takto (nebudu to rozebírat):
$file = "/foo/bar.php"; if(file_exists($file)) if(!require_once($file)) throw new MyRegException(500); else throw new MyRegException(400);Ale samozřejmě to navádí to dát minimálně do fce.
function grosseReguire($file){ if(file_exists($file)) if(!require_once($file)) throw new MyRegException(500); else throw new MyRegException(400); }a pak normálně volat:
grosseReguire($file);No a na odchytávání výjimek máme
try{ grosseReguire($file); /* * code */ } catch(MyRegException $e){ errorReg($e); } catch(Exception $e){ error($e); }
Chyba která oznamuje chybu grrr ?…?
reguire()
ukončí běh a vypíše chybu.
Pokud nic nevidíš, tak máš vypnuto vypisování chyb, ze skriptu je lze zapnout:
error_reporting(E_ALL);
případně error_reporting(E_ALL | E_STRICT);
a
ini_set("display_errors", 1);
.
Pokud se bavíš o odchytávání výjimek a jejich zpracování, tak jak si to uděláš, tak to máš…
Tiskni
Sdílej: