Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите как реализовывать обработку ошибок. Например, неправильный аргумент для функции, или ошибка подключения к базе данных.
Я сейчас использую класс Registry и все ошибки отправляю в свойство этого класса Regictry::$errors. А потом проверяю этот массив empty.
Задумался реализовать почти такой же механизм при помощи перехвата исключений.
Подскажите как наиболее лучше обрабатывать ошибки в соответствии с MVC?
Можно ссылку на статью или в двух словах как вы это делаете?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2011, 18:18
Ответы с готовыми решениями:

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

Отключение вывода ошибок
Здавствуйте.Подскажите как отключить вывод ошибок PHP, перепробывал все варианты, с модификацией .htaccess, php.ini, и т.д? Понятно, что...

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

9
 Аватар для YoungBoy
53 / 53 / 2
Регистрация: 19.04.2011
Сообщений: 294
19.12.2011, 09:57
oke11o, а чем не подходит try catch?
PHP
1
2
3
4
5
6
try {
    somefunc();
} 
catch (Exception $e) {
    echo 'Выброшено исключение: ',  $e->getMessage(), "\n";
}
0
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 11:47  [ТС]
Ну я об этом и говорю. Только при перехвате исключений сообщения в массив заносить.
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
В 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
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:25  [ТС]
Уважаемый, Павел. Мы с вами как немой с глухим разговариваем. Друг друга не понимаем. Как работает конструкция 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
oke11o, у Вас есть форма, которую нужно заполнять и если в какое-то поле введено неверное значение то нужно возле него вывести сообщение?
0
155 / 25 / 6
Регистрация: 06.06.2009
Сообщений: 262
19.12.2011, 12:42  [ТС]
И это тоже. В одном из шаблонов. В шаблоны данные поступают из контроллера. В контреллере есть свойство $errors.
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
19.12.2011, 15:39
Ошибка логина/пароля по моему не должна быть ошибкой системы и проверять ее не стоит как try/catch.
Если база вернула данные юзера - авторизуй, если нет - выведи маленькую ошибку пол полем ввода пароля.
Случай единичный, не думаю, что стоит его включать во всю систему логирования ошибок.

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

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

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

У меня вообще зенд и MVC, да и Zend_Form тут валидаторами помогает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.12.2011, 16:08
Помогаю со студенческими работами здесь

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

Вопрос по способу реализации
Вопрос по способу реализации на VS C# 2008. Значит задумка такая у меня. из файла формата .csv, который содержит произвольную таблицу...

Настройки вывода ошибок
Где в mysql настроить вывод ошибок в браузере? На денвер если в запросе синтаксическая ошибка, он показывал где это, а на чистом nginx и...

Найти ошибку в реализации файлового ввода-вывода
Ошибка заключается в том, что на этом промежутке while(fread(&a,sizeof(int),1,f)) { if(a!=0)fwrite(&a,sizeof(int),1,g); ...

Вопрос по реализации клиента EJB
Допустим, написан клиент. А как ему будут доступны клиентские stub'ы для работы с EJB? При развёртывании EAR'а можно создать jar со всеми...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru