Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Правильная (научная) обработка ошибок (не set_error_handler()) / 9 сообщений из 9, страница 1 из 1
06.04.2017, 00:11
    #39433836
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
У меня в коде все функции или отрабатывают хорошо (то есть делают то что должны делать) ИЛИ выводят сообщение об ошибке и делают exit.

Код: php
1.
2.
3.
4.
//код
$ifrend = is_ifrend($param1);    //вернет ifrend или будет выход, если ошибка
add2frend($ifrend);
//код



Но можно было бы вернуть false и в вызывающем коде обработать ситуацию.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
//код
$ifrend = is_ifrend($param1);    //вернет ifrend или будет выход, если ошибка
if ($ifrend == false){
//сообщить об ошибке,  и exit
}else{
add2frend($ifrend);
}
//код



Второй вариант мне не нравится. Засоряет код и усложняет чтение кода.

Как нужно делать обработку ошибок? Эти ошибки не перехватываются set_error_hendler(). Это ошибки уровня логики приложения. Я понимаю, что разработчик, архитектор решает что и как, но меня интересует где об этом узнать подробнее? И как вы решаете это?
...
Рейтинг: 0 / 0
06.04.2017, 00:14
    #39433837
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
второй пример кода такой:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
//код
$ifrend = is_ifrend($param1);    //вернет ifrend или FALSE, если ошибка
if ($ifrend == false){
//сообщить об ошибке,  и exit
}else{
add2frend($ifrend);
}
//код
...
Рейтинг: 0 / 0
06.04.2017, 09:55
    #39433945
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
Вопрос не понял, но подозреваю Вам нужны Exception`s
...
Рейтинг: 0 / 0
06.04.2017, 10:12
    #39433956
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
aliskin,

2 вариант не сильно усложняет чтение. Можно поставить восклицательный знак для краткости, и отступы для читаемости
Код: php
1.
2.
3.
4.
5.
6.
$ifrend = is_ifrend($param1);
if (!$ifrend) {
  //сообщить об ошибке, и exit
} else {
  add2frend($ifrend);
}
...
Рейтинг: 0 / 0
06.04.2017, 10:13
    #39433957
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
Hett,

НЕЕЕТТТ!!!
авторЭто ошибки уровня логики приложения.

Какое исключение будет вызвано, перехвачено ? если запрос вернул 0 строк ИЛИ пользователи не друзья. То есть ошибки нет.

Но результат запроса (0 строк - то есть для вывода ничего нет) нужно обрабатывать?

Еще раз повторяюсь: Речь идет про " ошибки " *, а не ошибки.

Ну не знаю я как можно объяснить. Если вообще никто ничего не понял, то значит я не так выражаюсь :(
...
Рейтинг: 0 / 0
06.04.2017, 10:15
    #39433959
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
user89aliskin,

2 вариант не сильно усложняет чтение. Можно поставить восклицательный знак для краткости, и отступы для читаемости
Код: php
1.
2.
3.
4.
5.
6.
$ifrend = is_ifrend($param1);
if (!$ifrend) {
  //сообщить об ошибке, и exit
} else {
  add2frend($ifrend);
}



Не стоит использовать обратную логику, это в любой книжке оп программированию в самом начале написано. Убрать отрицание и поменять местами блоки.
...
Рейтинг: 0 / 0
06.04.2017, 10:20
    #39433966
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
user89aliskin,

2 вариант не сильно усложняет чтение. Можно поставить восклицательный знак для краткости, и отступы для читаемости


нее. Отступы у меня в иде присутствуют.
---
Это только один маленький пример. А если читать это в коде и таких фрагментов (как второй вариант) много, то... получается ерхня.

Я хочу узнать кто как решает это у себя? Или вы даже не обращали внимание на это и не заморачивались на этой выдуманной(?) проблемой?

В литературе я не видел ничего по этой теме.
...
Рейтинг: 0 / 0
06.04.2017, 10:23
    #39433970
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
HettНе стоит использовать обратную логику, это в любой книжке оп программированию в самом начале написано. Убрать отрицание и поменять местами блоки.

это в любой книжке оп программированию в самом начале написано
всмысле? теперь я не понял...
...
Рейтинг: 0 / 0
06.04.2017, 10:29
    #39433973
aliskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная (научная) обработка ошибок (не set_error_handler())
Для меня все таки более предпочтительней первый вариант - в самом начале. Так понятней и меньше кода.

Чем первый вариант плох? Что почитать по теме? Какие-то "шаблоны проектирования"??? Может Стив Макконелл - Совершенный код?

Какие еще предложения будут?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Правильная (научная) обработка ошибок (не set_error_handler()) / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]