[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: try catch вывод всех ошибок
littleman
Написал обработчик , всё работает но при занесение не верного email и логина он выводит только одну ошибку .
catch (Exception $e) {
$Messeng = $e->getMessage();
echo $Messeng;

А можно все вывести , не одну , а 2-3 ошибки ?
Oyeme
То что Вы выбросили то и словите wink.gif
В данном случаи то что находиится в $e->getMessage() wink.gif
littleman
Oyeme
Вопрос как вывести более одной ошибки ? А не то что я написал и выловлю , я и так понял уже.
littleman
Выловил принт-р
Array ( [0] => Не коректный Email )
А ошибок было 3 , логин , пароли не совпали
kaww
Это вообще не самая удачна идея использовать исключения для валидации данных. Исключения нужны для обработки именно "нештатных" ситуаций в работе программы.
Валидатор же просто возвращает true or false и сообщения об ошибках если имели место быть.
littleman
Валидация в отдельном .

function validateEmail ( $value ) {
return ( filter_var( $value, FILTER_VALIDATE_EMAIL ) ) ? true : false ;
}

function filled_out ($form_vars){
foreach ($form_vars AS $key => $value){
$value = htmlspecialchars( trim ( $value ) );
if (!isset($key) || ($value == '') )
return false;
}
return true;
}
AllesKlar
littleman
Цитата
Вопрос как вывести более одной ошибки ? А не то что я написал и выловлю , я и так понял уже.

Вывести более одной ошибки можно, например так:
echo $error1;
echo $error2;
...

echo $errorN;


или так:
foreach($errors as $error)
{
echo $error;
}


Не, не то?
Ну тогда перечитаем еще раз то, что написал многоуважаемый Oyeme
Цитата
То что Вы выбросили то и словите

Переключаем тумблер мозка в положение ВКЛ.
думаем...
Как же выбросить более одной ошибки?
Как же работает try catch...
Если в try выбрасывается exception, то дальнейший код не выполняется, а управление передается в блок catch... что же, чтоже сделать такого в catch, чтобы заставить скрипт работать дальше, и, при возникновении еще одной ошибки отловить и ее?


// Блин, прям детектив-триллер получился. Может книгу написать? :)


_____________
[продано копирайтерам]
littleman
AllesKlar
Включаем также тюмлЭр !
Я написал
Array ( [0] => Не коректный Email )

Ошибка одна ! Я уже перебрал форейчем , я бы не написал сюда , а в новички тему создал.
Я не понимаю , зачем перебирать массив есть там падает одна запись :D
AllesKlar
ТэтрадЭ . :)
sergeiss
littleman, тебе AllesKlar "намЯкивает", что тебе надо провести все проверки, набрать все ошибки "в кучу" (например, в массив), после чего уже выводить инфу об этих ошибках. Ну это как один из возможных вариантов, на самом деле.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
littleman
sergeiss
Мне не намёков , понял , спасибо , ща соберу многомерный массив и буду побывать .
AllesKlar
littleman
$errors = array();
try
{
... // ооп.. ошибка, переход управления в catch
}
catch(Exception $e)
{
$errors[] = 'Ошибка 1';
try
{
... // ооп.. еще одна ошибка, переход управления в catch
}
catch(Exception $e)
{
$errors[] = 'Ошибка 2';
.......

}
}


Но, как уже выше заметили, это кривой путь. Валидацию нужно проводить просто возвращая true / false и накапливать ошибки, далее, после всех валидационных процедур, смотрим, пуст ли массив с ошибками? если пуст, идем дальше, ели не пуст, выводим ошибки.
А исключения нужны немного для другого.
Ты пришел из С++ или явы? :) Там именно так и производится через исключения, но это из-за строгой типизированости. Тут же просто смотришь в переменную, если не то, что хотел, то просто скажи об этон, не надо из пушки :)

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.