Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
Здравствуйте, как вывести свою ошибку в php при ошибке выполнения кода/функции?
Раньше часто встречал, теперь нужен стал и не найти. (Добавление)
Все нашел в своем же коде:
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
garvey
Отправлено: 02 Марта, 2011 - 11:13:38
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
die() - плохая прктика. Используйте Exception. Это очень удобно для логирования, просмотра трассировки ошибок. продолжение выполнения скрипта при ошибке.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LEONeso
Отправлено: 02 Марта, 2011 - 14:10:54
Посетитель
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
garvey, каким образом php может вести сам логи выводимых ошибок на странице? Ведь при использовании скрипта в массовом режиме, могут вылазить разного рода ошибки и их надо исправлять, чтоб отловить эти ошибки их надо записывать в лог файл. На форуме уже есть готовая функция ведения логов, её надо прописывать в каждом месте, где возможно будет выводиться ошибка т.е. допустим использовать, предлагаемый вами, Exception, возможно позволит вести беспрерывный лог всего скрипта или ресурса.
Возможно, есть готовые решения для ведения отладочных логов, вылавливая все ошибки, которые появляются на странице(ах) с указанием самой ошибки и информацию о браузере клиента включая его ip?
Вероятно выгоднее вести лог в базе данных нежели в файле?
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
JustUserR
Отправлено: 02 Марта, 2011 - 15:36:55
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
LEONeso пишет:
or die();
Использование предполагаемой конструкции для осуществления определения локального потока отображения произошедней ошибки, основано на примении логического оператора короткого замыкания, функционирование которого обеспечивает проведением расчета ассоциированного возвращаемого значения для всех элементов интерпретируемого выражения; на основе применение операторов короткого замыкания возможно построение как потоков обработки ошибок, так и транзационных объектных действий, связанных с обеспечением успешного последовательского выполнения действий в виде act1 and act2 and act3 and commit or rollback
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
OrmaJever
Отправлено: 02 Марта, 2011 - 15:42:05
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
класс Exception недоработаный штоле
Вот функция обработки warning и notice
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
garvey
Отправлено: 02 Марта, 2011 - 17:58:24
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
LEONeso.
У нас есть метод test, в котором есть ошибка "Division by zero". Вместо вывода ошибки, определенной интерпретатором, вызовется метод _customErrorHandler().
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
garvey, т.е. сама по себе ошибка на экран не выводится?
только не понятно, нужно вызвать функцию в нужном месте, далее внести ошибку в переменную и передать её значение в функцию на обработку?
Плохо представляю как оно работает и как прописывается.
как писал OrmaJever, mysql_fetch_row -- Орабатывает ряд результата запроса и возвращает неассоциативный массив.
и требуется ли применять представленный код OrmaJever'ом? или это уже полностью функциональная функция ,которая подойдет для моих целей?
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
garvey
Отправлено: 02 Марта, 2011 - 18:56:24
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
Да, не выводится, если код, в котором может возникнуть ошибка, обернуть в try-catch блок. Порой есть очень важный функционал, который не должен остановить работы после какой-нибудь ошибки программиста. Мой же вариант запишет это все в лог или еще что-нибудь сделает.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.