![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Code Magister |
|
||||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Допустим у меня есть свой обработчик ошибок
И если в каждом месте где возникает ошибка писать
То вот эти __FILE__ и __LINE__ ухудшают код, возможно ли как-то сделать чтобы они передавались сами? А если нет, то как тогда это получается у стандартного класса Exception? --------------------
|
||||
|
|||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: нет Всего: 36 |
Используйте исключения, поставьте себе xdebug и не насилуйте себя и код подобными извращениями.
|
|||
|
||||
Endeveit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 2.6.2006 Репутация: 1 Всего: 7 |
||||
|
||||
Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Не извращения, то что я написал это для примера, а эта штука мне реально нужна
а что debug_backtrace? Она же тоже покажет место, с которго была вызвана --------------------
|
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: нет Всего: 36 |
Code Magister, расскажите зачем.
|
|||
|
||||
Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Ну я хочу сделать свой Exception а не юзать стандартный, только не спрашивайте зачем, и вообще я спрашивал как конкретно это можно сделать, а не как сделать чтобы было что-то похожее, и как этого НЕ делать тоже не спрашивал.
Например в Си можно было бы сделать макрос который бы сам подставлял __LINE__ (не самое красивое решение) или возможно использовать inline-функции чтобы __LINE__ принимало значение именно той строки на которой произошел вызов функции(не уверен, не проверял). Интересует есть ли способы в PHP Это сообщение отредактировал(а) Code Magister - 24.12.2007, 16:05 --------------------
|
|||
|
||||
Glip |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: нет Всего: 18 |
что-то не понял я ответили на ваш вопрос или нет.
ну вот например конструктор Exception из SPL
то есть вместо error(5, 'error', __FILE__, __LINE__); - throw new Exception($message, $code) можно еще добавить
на мой взгляд получается удобно. |
||||
|
|||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Code Magister,
1. Свой обработчик ошибок можно зарегистрировать через set_error_handler(). Тогда через параметр $errline будет передаваться нужная строка. 2. Как уже было сказано, использовать debug_backtrace()
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |