Diskuze: vyjimka při správném behu programu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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>');
}
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í");
}
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(...);
Zobrazeno 5 zpráv z 5.