Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
tribal.cz
Redaktor
Avatar
tribal.cz: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 tribal.cz
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  +2 17.5.2014 14:38
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.: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
tribal.cz
Redaktor
Avatar
Odpovídá na GreenMan
tribal.cz: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  +1 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.