Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Подскажите, как можно задать для исключения дополнительные поля? Допустим код вызывает исключение, передавая кроме текстового описания и кода ошибки еще три параметра. Как эти дополнительные параметры можно передать и отобразить? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 18:07 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
наследоваться от исключения и деать что хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 18:09 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Ну создать класс унаследованный от Exception и использовать его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 18:09 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Ну про наследование я и сам понял. А как должно быть реализовано в коде? Дополнительные аргументы в методе-конструкторе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 19:28 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Подскажите еще, из документации не очень понятно. В классе исключения я могу завершать скрипт? Или exit должен быть снаружи (в блоке catch)? И что неправильно в коде? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. Бросаю исключение: Код: php 1. И получаю ошибку в логе: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:00 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Получился интересный побочный эффект. Конструктор своего исключения сделал таким: Код: php 1. 2. 3. 4. 5. 6. 7. 8. Обработчик написан так: Код: php 1. 2. 3. 4. 5. Бросаю исключение так: Код: php 1. И при этом получаю вывод сообщения: #FAIL_DATABASE Сбой при подключении к базе данных, работа невозможна. Сбой при подключении к базе данных, работа невозможна. То есть в HotspotException почему-то свойство message переписывается этим свойством родителя Exception. Отчего так происходит и как это исключить? Если в конструкторе HotspotException закомментировать создание исключения родителя, тогда перезаписи свойства message не происходит, но возможно так делать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:35 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Alibek B., ты вообще сам читаешь, что ты пишешь??? ладно в пхп коде не читаешь, но на форуме на русском. ничего же не понятно без циклического прочтения твоего потока сознания. parent::__construct((empty($message) ? $text : $message), 0, $previous); ЗЫ Код: plaintext 1. 2. 3. 4. 5. 6. 7. анекдот явно не про данный случай. здесь нет фокуса, или эффекта интересного. здяся програмирование детка, как на писано, так и выполниться. :) ЗЫЗЫ обычно принято, инициализирующие методы родителя, в потомках вызывают родительский вначале...тоесть сначала инициализация общая(родительская) потом своё добавляем в завершающих методах наоборот. ибо в инициализирующих, наша инициализация может зависеть от родительской, последняя точно не зависит от нашей. ЗЫЗЫЗЫ в переопределённом конструкторе порядок параметров перепутан, можно но лудше сохранять оригинальный, разве что дополнив своими вконце ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 15:02 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Потому что в конструкторе у вас вызвано Код: php 1. вот он на экран тоже выводит, как я понимаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 15:22 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
HettПотому что в конструкторе у вас вызвано Код: php 1. вот он на экран тоже выводит, как я понимаю :) не там по вёрстке у него двойной вывод... один раз текст, один раз месседж, но так как при пустом меседже, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 15:56 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
специально проверил сейчас, проблема в вызове конструктора предка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 16:42 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Hettвот он на экран тоже выводит, как я понимаю :) Не совсем. При выполнении этой строки изменяется свойство message моего класса. Если на пальцах, то у моего исключения есть три свойства: код ошибки (code), текст ошибки (text) и подробности ошибки (message), причем текст ошибки вызывающей стороной не задается, он определяется исключительно кодом ошибки. Когда я вызываю конструктор родителя, я передаю в него сообщение об ошибке, оно должно соответствовать message (если задано) или text (если message не задано). Например я вызываю исключение с кодом FAIL_DATABASE и без дополнительного описания. То есть code='FAIL_DATABASE', text='Сбой подключения к БД', message=null. Родительское исключение при этом должно вызваться с параметрами message='Сбой подключения к БД", code=0. Но оно при этом обновляет свойство message уже моего класса, то есть после вызова конструктора родителя у меня получается code='FAIL_DATABASE', text='Сбой подключения к БД', message='Сбой подключения к БД', хотя message я сам не изменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 17:57 |
|
||
|
Исключение с доп.полями в PHP
|
|||
|---|---|---|---|
|
#18+
Ну так и откуда второе сообщение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 19:23 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38667986&tid=1462705]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
87ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 458ms |

| 0 / 0 |
