Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
oke11o
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
1

Вопрос по реализации вывода ошибок

16.12.2011, 18:18. Просмотров 805. Ответов 9
Метки нет (Все метки)

Здравствуйте. Подскажите как реализовывать обработку ошибок. Например, неправильный аргумент для функции, или ошибка подключения к базе данных.
Я сейчас использую класс Registry и все ошибки отправляю в свойство этого класса Regictry::$errors. А потом проверяю этот массив empty.
Задумался реализовать почти такой же механизм при помощи перехвата исключений.
Подскажите как наиболее лучше обрабатывать ошибки в соответствии с MVC?
Можно ссылку на статью или в двух словах как вы это делаете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 18:18
Ответы с готовыми решениями:

Прогресс-бар: схемы реализации? Вопрос вселенской важности!
Имеется html-страничка, с которой jQuery аяксом делается запрос к скрипту...

Отключение вывода ошибок
Здавствуйте.Подскажите как отключить вывод ошибок PHP, перепробывал все...

вопрос по реализации на C++
Условие: собственно сам вопрос: каким образом записать информацию о двух...

Вопрос по способу реализации
Вопрос по способу реализации на VS C# 2008. Значит задумка такая у меня. из...

Вопрос по реализации буфера
Здравствуйте! Я все продолжаю свои мытарства в текстовым редактором и добрался...

9
YoungBoy
53 / 53 / 2
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 09:57 2
oke11o, а чем не подходит try catch?
PHP
1
2
3
4
5
6
try {
    somefunc();
} 
catch (Exception $e) {
    echo 'Выброшено исключение: ',  $e->getMessage(), "\n";
}
0
oke11o
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 11:47  [ТС] 3
Ну я об этом и говорю. Только при перехвате исключений сообщения в массив заносить.
PHP
1
2
3
4
5
6
try {
    $auth->somefunc();
} 
catch (Exception $e) {
    $errors['auth'][] = $e->getMessage();
}
И потом опять же проверять этот массив и выводить сообщения в нужном месте.
А вопрос как еще можно выводить сообщения об ошибке. Например, "неверный ввод пароля\ логина".
0
YoungBoy
53 / 53 / 2
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 11:59 4
В catch ты можешь поместить что угодно + ко всему есть еще finally для обязательных нужд

Можно через if else
PHP
1
2
3
4
5
6
7
8
9
$login = 'login';
$pass = 'pass';
 
if (($_POST['login'] != $login) && ($_POST['pass'] != $pass)){
    echo "неверный ввод пароля\ логина";
}
else {
    echo "вход выполнен";
}
0
oke11o
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:25  [ТС] 5
Уважаемый, Павел. Мы с вами как немой с глухим разговариваем. Друг друга не понимаем. Как работает конструкция try ... catch, я представляю.
У меня к вам вопрос. куда вы сделаете этот echo?
PHP
1
2
3
4
5
if (($_POST['login'] != $login) && ($_POST['pass'] != $pass)){
    echo "неверный ввод пароля\ логина";
}
else {
    echo "вход выполнен";
На всю страницу? Только в блок контента? Или в спец блок ошибок? Как вы выберете этот блок? Если это форма с 10 полями, напротив какого поля выводить сообщение о том, что поле заполнено неверно?
0
YoungBoy
53 / 53 / 2
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 12:33 6
oke11o, у Вас есть форма, которую нужно заполнять и если в какое-то поле введено неверное значение то нужно возле него вывести сообщение?
0
oke11o
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:42  [ТС] 7
И это тоже. В одном из шаблонов. В шаблоны данные поступают из контроллера. В контреллере есть свойство $errors.
0
KoIIIeY
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
19.12.2011, 15:39 8
Ошибка логина/пароля по моему не должна быть ошибкой системы и проверять ее не стоит как try/catch.
Если база вернула данные юзера - авторизуй, если нет - выведи маленькую ошибку пол полем ввода пароля.
Случай единичный, не думаю, что стоит его включать во всю систему логирования ошибок.

Добавлено через 2 часа 40 минут
у меня в логи попадают только исключения работы программы.

Например если внезапно заместо цифрового идентификатора пришла строка.

Или если массив не массив
1
oke11o
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 15:44  [ТС] 9
KoIIIeY, а как вы выводите сообщения типа ошибка логина/пароля?
0
KoIIIeY
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
19.12.2011, 16:08 10
У меня ассоциативный массив ошибок. Если имеется ошибка 'loginError' и/или 'passwordError' выводим к этим полям текст.

У меня вообще зенд и MVC, да и Zend_Form тут валидаторами помогает.
1
19.12.2011, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 16:08

Вопрос по реализации клиента EJB
Допустим, написан клиент. А как ему будут доступны клиентские stub'ы для работы...

RTX вопрос по реализации задержек
Раньше использовал для задержек в задачах функцию os_itv_set - интервал запуска...

Гиперссылки в ComboBox: вопрос реализации
привет всем) мне нужно из вылазиющих строчек в ComboBox сделать Гиперссылки на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru