Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.08.2013, 20:38
|
|||
|---|---|---|---|
|
|||
api, обработка ошибок |
|||
|
#18+
Разрабатываю api для сайта, параллельно пишу клиента для этого api. Пытаюсь решить вопрос как лучше сделать обработку ошибок, видел, что часто активно используется обработка исключений, но мне в этом способе не нравится необходимость каждый запрос оборачивать двойными, а то и тройными catch. Я склоняюсь к такой схеме: запрос к api возвращает только данные(результат запроса) или false (false обозначает только ошибку, а пустой результат - это пустой массив), все исключения отлавливаются библиотекой, но при необходимости пользователь может получить ошибку(если она была) опросив переменную класса, т.е. как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Понятно, что такой код обработки не лучше чем каждый раз обертывать в catch, но не всегда надо обрабатывать ошибку, иногда можно просто пропустить обработку, если данные не были получены. Как думаете, как лучше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.08.2013, 21:29
|
|||
|---|---|---|---|
api, обработка ошибок |
|||
|
#18+
варенье, сам систему исключений очень редко использую (в принципе несколько раз только было), но это чисто по привычке :). Вообще говорят исключения очень удобны, так как прокидываются сразу через несколько уровней. Скажем есть у Вас функция подключения к чему-то, функция логина и функция получения данных. Вы это всё для удобства оборачиваете ещё в один метод. Если делать как Вы хотите, придётся кучу if...else городить. А если Вы в случае ошибок в данных трёх функциях выкидываете исключения, то и следить далее за ошибками в этих функциях не приходится, так как если одна из них выкинет исключение, то пользователь Вашего api получит данные об ошибке напрямую. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2013, 06:18
|
|||
|---|---|---|---|
api, обработка ошибок |
|||
|
#18+
все функции должны возвращать либо результат либо исключение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2013, 13:42
|
|||
|---|---|---|---|
|
|||
api, обработка ошибок |
|||
|
#18+
Вот это и не нравится в PHP. Что для того что бы типизировать работу приложения необходимо городить велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2013, 13:52
|
|||
|---|---|---|---|
api, обработка ошибок |
|||
|
#18+
Electric200Вот это и не нравится в PHP. Что для того что бы типизировать работу приложения необходимо городить велосипед. не понял. о каком велосипеде речь то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2013, 13:55
|
|||
|---|---|---|---|
|
|||
api, обработка ошибок |
|||
|
#18+
О том, что можно написать черт знает что в качестве аргументов, и получить черт знает что на выходе. И тебе за это нечего не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2013, 14:17
|
|||
|---|---|---|---|
api, обработка ошибок |
|||
|
#18+
Electric200О том, что можно написать черт знает что в качестве аргументов, и получить черт знает что на выходе. И тебе за это нечего не будет. вообще, так можно сказать о любом не типизированном языке :) Но можно ведь указывать класс, требуемый на вход. Поддерживаются классы и массивы (пока примитивы не поддерживаются), но в 5.6 хотели дать такую возможность. Так что пхп делает шаг к жёсткой типизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&tablet=1&tid=1463542]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 360ms |

| 0 / 0 |
