Pouze tento týden sleva až 80 % na e-learning týkající se PHP. A zároveň využij akce až 30 % zdarma při nákupu e-learningu. Více informací.
Hledáme programátora, 100% home office, 100% flexibilní. Prozkoumej aktuální pozice
php week

Diskuze: vyjimka při správném behu programu

Aktivity
Avatar
Martin Suchodol
Redaktor
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
Redaktor
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!
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Martin Suchodol
Redaktor
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.