Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.
Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.
Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
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: