| | |
| Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Autor | Správa |
---|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal Light: 24.08.2010 16:13 | |
|
Mohli byste mi to niekto objasniť proším ? Ako to funguje ? a má cenu to použivať (zrejme áno inak by to niekto nevymýšlal ale aj tak sa pýtam)
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | |
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 24.08.2010 16:21 | |
|
Hej hej, len chcem mat dobry navyk ich pouzivat kedze vela inych jazykov ich vyuziva ... myslim ze je to dobry zvyk
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 24.08.2010 21:51 | |
|
Niekedy je lepšie (a hlavne oveľa rýchlejšie), keď funkcia namiesto vyvolania výnimky pošle nejakú špeciálnu návratovú hodnotu (napr. funkcia na načítanie obrázka pri chybe vráti NULL a nie ukazovateľ na dáta...).
|
|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 25.08.2010 17:06 | |
|
Dovolte aby som sa opat vratil k tejto teme ... napisal som jednoduchu ukážku s ktorou potrebujem poradit, problem je v tom ze potrebujem ulozit chybove hlasenie 1 a 2 do pola array ktoré sa následne vypise, avsak vzdy sa mi ulozi iba jedno z dvoch hlaseni (do tohto pola)
Kód: <?php
class database { private $err; public function __construct() { $this->err = array(); } public function connectDb() { return false; // pokial false vypis chybove hlasenie 1 } public function connectDb2() { return false; // pokial false vypis chybove hlasenie 2 } public function checkError() { try { if(!$this->connectDb()) { throw new Exception('Nastala chyba 1'); // hlasenie 1 } if(!$this->connectDb2()) { throw new Exception('Nastala chyba 2'); // hlasenie 2 } } catch(Exception $e) { $this->err[] = $e->getMessage(); // tu potrebujem ulozit do pola hlasenia oboch chyb ak nastalo } } public function showErrors() { echo "<h3>Errors</h3>"; foreach($this->err as $key=>$value) echo $value."<br>"; // vypis chyb z pola } }
$newObj = new database(); $newObj->connectDb2(); $newObj->connectDb(); $newObj->checkError(); $newObj->showErrors();
?>
|
|
Registrovaný: 20.07.08 Príspevky: 474 Témy: 1 Bydlisko: Kosice | Napísal mbc: 25.08.2010 17:29 | |
|
musis pouzit dva try/catch bloky lebo prvy throw sposobi ze dalsi kod sa ani nevykona
|
|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 25.08.2010 17:33 | |
|
no a neda sa to nejako cez array ? sak to budem mat potom milion throw blokov ... nedasa to nejako cez jeden blok ?
|
|
Registrovaný: 20.07.08 Príspevky: 474 Témy: 1 Bydlisko: Kosice | Napísal mbc: 25.08.2010 17:38 | |
|
tak to neries cez throw ale rovno v tych If-och vloz hlasku do pola (bez try/catch)
|
|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 25.08.2010 17:45 | |
|
no hej aj tak sa da, ale chcel som skusit aj tuto variantu kedze v inych programovacich jazykoch je pouzivanma
|
|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 25.08.2010 19:09 | |
|
ok vyriesil som to inak ale mam dalsi problem a to ze ked napisem ine meno napr . throw new MyExceptionTwo (miesto throw new Exception) tak my vypise chybu ze trieda nebola najda (Fatal error: Class 'MyExceptionTwo' not found in) neviete co s tym ??
Kód: <?php class checkNum { private $num1; private $num2; public function __construct() { $this->num1 = 12; $this->num2 = 31; } public function testuj() { if($this->num1 < 30) { return true; } else { return false; } } public function testujDva() { if($this->num2 > 50) { return true; } else { return false; } } public function chyby() { try { if(!$this->testuj()) throw new MyException("chyba 1"); if(!$this->testujDva()) throw new MyExceptionTwo("chyba 2"); } catch(MyException $e) { echo 'Error : ' . $e->getMessage(); } catch(MyExceptionTwo $i) { echo 'Error : ' . $i->getMessage(); } } }
$obj = new checkNum(); $obj->chyby();
?>
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 25.08.2010 19:20 | |
|
No samozrejme, vsak si musis tuto triedu zadefinovat.
Kód: class MyException extends Exception { public function __construct($message, $errno = 0) { //sem tvoj kod
//este zavolame konstruktor samotnej triedy Exception parent::__construct($message, $errno); } } Este mozes prepisat metodu __toString, inak nic. Mas nejaky dovod k nahradeniu Exception vlastnou triedou?
|
|
Registrovaný: 23.08.10 Prihlásený: 30.10.11 Príspevky: 39 Témy: 7 | Napísal autor témy Light: 25.08.2010 19:28 | |
|
No popravde tak trochu experimentujem takze asi tak ... no ak si pozries ten kod tak mi ide oto aby sa vypisala chyba 1 alebo chyba 2 pokial dana funkcia vrati false, a ak vratia obydve false tak potrebujem nejako vypisat dve hlasenia chybove ... no a neviem ako na to
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
1.) používaj EDIT
2.) to, čo tu opisuješ sa v iných jazykoch musí riešiť rovnako. Vo všetkých jazykoch ti vyvolanie výnimky zastaví vykonávanie a teda neexistuje, aby ti henten kód vrátil dve chyby.
Keď už sa to učíš, tak sa to uč aspoň poriadne, pretože z týchto tvojich príspevkov vidno len to, že nechápeš čo sa kedy stane...
_________________ C#, PHP, ... |
|
| Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| java: osetrovanie vynimiek - je to nevyhnutne? v Assembler, C, C++, Pascal, Java | 2 | 600 | 12.10.2007 16:56 zero0x | | RouterOS: obsluha 2 interface jednym DHCP serverom v Siete | 3 | 282 | 05.03.2014 7:56 mp3turbo | | PHP programátor - PHP, MySQL, jQuery,X)Html/CSS v Ponuka práce | 0 | 1310 | 02.05.2011 12:08 magicmedia | | Vytvorenie suboru php a vlozenie php scriptu v PHP, ASP | 4 | 1439 | 07.05.2010 14:02 DeiForm | | PHP nevie precitat .PHP v PHP, ASP | 8 | 831 | 18.03.2011 19:21 camo | | php ->mysql ->php Help.zoradit v PHP, ASP | 4 | 593 | 20.06.2009 12:44 KViki | | $pcforum->getForumActivity('PHP, ASP', 2012)/$pcforum->getForumActivity('PHP, ASP', 2022) - Warning: Division by zero v PHP, ASP | 4 | 2295 | 20.05.2022 13:51 JanoF | | PHP v PHP, ASP | 18 | 1180 | 01.01.2009 19:22 rooobertek | | PHP v PHP, ASP | 1 | 737 | 31.05.2007 16:24 kmsa | | PHP v PHP, ASP | 2 | 457 | 08.04.2016 20:44 5had0w | | PHP v PHP, ASP | 1 | 2727 | 09.06.2005 22:39 johny128 | | PHP-Fusion v Redakčné systémy | 4 | 533 | 21.01.2007 16:23 altt | | nefunguje php v PHP, ASP | 15 | 873 | 27.09.2009 18:40 Pablo Montero | | PHP include v PHP, ASP | 3 | 1119 | 09.03.2010 20:17 Ďuri | | Učiteľ php v Ponuka práce | 1 | 479 | 15.07.2013 12:42 Daron | | php kodovanie v PHP, ASP | 1 | 382 | 17.11.2011 14:06 BX |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|