Připojit neznámý USB flash disk do počítače může být nebezpečné. Dokonce může jít i o život. Někdo rozeslal ekvádorským novinářům USB flash disky, které po připojení do počítače explodují [BBC, Twitter].
Byla vydána nová verze 7.4 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu.
Byla vydána verze 11.0 s kódovým jménem Aramo linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 22.04 LTS a podporována bude do roku 2027. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Mozilla založila startup Mozilla.ai a vložila do něj 30 milionů dolarů. Cílem je vývoj důvěryhodné, nezávislé a open source AI.
Po půl roce vývoje od vydání verze 43 bylo vydáno GNOME 44 s kódovým názvem Kuala Lumpur. Přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Krátké představení na YouTube.
Letošní Turingovou cenu (2022 ACM A.M. Turing Award) získal Bob Metcalfe za vynalezení, standardizaci a komercializaci Ethernetu.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána ve verzi 5.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu.
Byla vydána Java 20 / JDK 20. Nových vlastností (JEP - JDK Enhancement Proposal) je 7. Nová Java / JDK vychází každých 6 měsíců. LTS verze je 17.
Google spustil konverzační AI Bard. Vyzkoušet lze zatím pouze ve Spojených státech a Spojeném království. Více v Bard FAQ.
David Buchanan na svém blogu rozebírá zranitelnost acropalypse (CVE-2023-21036) telefonů Google Pixel. Z výřezu (crop) snímku obrazovky vytvořeného integrovanou aplikací Markup může být možné částečné obnovení původního snímku obrazovky. Viz tweet Simona Aaronse. Vyzkoušet lze webovou aplikaci acropalypse.app. Opraveno v březnové aktualizaci.
throw new Exception('Chybové hlášení');
class Forms{ private $input = array(); private $textarea = array(); private $layout; public function __construct(){ try{ $this->getInput(); $this->getTextarea(); $this->getButton(); $this->setLayout(); }catch (PDOException $e){ $this->setLayout(); } } private function getInput(){ if($a === true) //Vyvoláme chybu throw new Exception('Chyba!'); } private function getTextarea(){} private function getButton(){} private function setLayout(){ $this->layout = $input[0]. $input[1]. $input[2]. $textarea[0]. $textarea[1]; } public function __toString(){ return $this->layout(); } } $forms = new Forms(); echo $forms;
$this->layout
pokud nektera z metod vyhodi vyjimku..
private $input = array(); private $textarea = array(); // v konstruktoru $this->getInput();Zřejmě metodou
getInput()
plníš pole $input
. Jenže to tak být nemusí. Co třeba takto?
private $input; private $textarea; // v konstruktoru $input = new Input();a v metodě
__toString()
ty dva objekty spojíš do jednoho stringu.
$this->layout
vůbec neměla existovat. Přece se i v OOP dělá normalizace. Nebo snad ne?
1. ano, závorky tam nepatří, čili to má být takto $this->layout; 2. no to jsou pole, ne proměnné 3. ano, vypadl řádek $a = true;
class Forms { private $input = array(); private $textarea = array(); public function __construct(){ try { $this->getInput(); $this->getTextarea(); $this->getButton(); } catch (PDOException $e){ $input = array(); $textarea = array(); } } private function getInput() { if($a === true) //Vyvoláme chybu throw new Exception('Chyba!'); } private function getTextarea() {} private function getButton() {} public function __toString(){ return implode('', $this->input) . implode('', $this->textarea); } } $forms = new Forms(); echo $forms;
//if($a === true) //Vyvoláme chybuabych vyvolal chybu kterou odchytím a pokračuji dál dle nastaveni, tak dostávam chybu:
Fatal error: Uncaught exception 'Exception' with message 'Chyba!'Proč? Díky
Exception
, ale zachytáváš PDOException
. Pokud tu předponu "PDO" vyhodíš, bude to fungovat.
} catch (PDOException $e){napiš jen
} catch (Exception $e){Takovou kravinu sis mohl klidně opravit sám. Měl jsi to tak chybně v originále a pouze jsem to přehlédl.
public function __construct(){ try{ $this->getInput(); $this->getTextarea(); $this->getButton(); $this->setLayout(); }catch (PDOException $e){ $this->setLayout(); } }myslel tim, ze misto zachytavani
PDOException
tam mas mit obecnou Exception
, takze tim zachytis jakoukoliv vyjimku, ne jen vyjimky ktere jsou instancemi PDOException
protože do atributů objektu se dávají jen atomické a strukturované údaje, nikoli agregáty.Můžeš mi prosím tohle objasnit?
try { .. } catch (Exception $e){ .. }a volání metod patří do __toString() ?
try { echo $a; // tohle by mělo vyhodit chybu, že není inicializovaná prom. $a } catch (Exception $e){ echo "$e"; // a zprávu o té chybě bych chtěl dostat sem }A pak už bych byl velký frajem a změnil bych si i NICK
isset($a)
.
Tiskni
Sdílej: