Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martin Suchodol:17.5.2014 14:29

ahoj mám problém s vyjímkami pravda je že je prakticky používám poprsevé doted sem použíal bud retur nebo echo pro vypis chyb ale v nasledujicim kodu mam vyjimku takto

try
            {
                if($_POST['password'] == $_POST['passwordAgain'])
                {
                        $this->saveNewUser($this->newUser->saveUser());
                }
                throw new UserException("Zadaná hesla se neshodují");
            }
                catch (UserException $e){
                        echo ('<span style="color: red;">' . nl2br($e->getMessage()) . '</span>');
                }

a vyjimka se mi ukáže i při správném běhu programu

 
Odpovědět
17.5.2014 14:29
Avatar
GreenMan
Tvůrce
Avatar
Odpovídá na Martin Suchodol
GreenMan:17.5.2014 14:38

Kód ktorý vracia výnimku sa v tomto prípade spustí vždy. Výnimku vyhadzuj v prípade, že sa heslá nezhodujú, teda cez else.

try
             {
                 if($_POST['password'] == $_POST['passwordAgain'])
                 {
                        $this->saveNewUser($this->newUser->saveUser());
                 } else {
                 throw new UserException("Zadaná hesla se neshodují");
                 }
             }
                catch (UserException $e){
                        echo ('<span style="color: red;">' . nl2br($e->getMessage()) . '</span>');
                }
Nahoru Odpovědět
17.5.2014 14:38
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Uživatel sítě :17.5.2014 14:40

Hm a nemá to vyvolání výjimky být v else?

if($_POST['password'] == $_POST['passwordAgain']){
    $this->saveNewUser($this->newUser->saveUser());
}else{
    throw new UserException("Zadaná hesla se neshodují");
}
Nahoru Odpovědět
17.5.2014 14:40
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na GreenMan
Martin Suchodol:17.5.2014 14:49

jo už je to ok díky

 
Nahoru Odpovědět
17.5.2014 14:49
Avatar
Martin Konečný (pavelco1998):17.5.2014 14:52

Udělal bych to spíše obráceně, tzn. testoval bych, zda se podmínka nesplnila a v tom případě vyhodit výjimku.

if ($_POST["password"] != $_POST["passwordAgain"]) {
    throw new Exception("hesla se neshodují");
}
if (strlen($_POST["password"]) < 5) {
    throw new Exception("heslo je krátké");
}

// vše OK
$this->saveNewUser(...);
Nahoru Odpovědět
17.5.2014 14:52
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.