@oop_ru

Страница 542 из 785
Evgeniy
05.03.2018
17:53:57
зато мы не обрабатываем результаты вызовов

но мы сделали первый if для типа исключения, второй if чтобы понять а кто его реально выкинул

Alan
05.03.2018
17:54:22
наверно поэтому в яндекс кассе любая ошибка это Упс что то пошло не так )))))

Maksim
05.03.2018
17:54:35
Нахер жить без исключений) пущай всякие голанги лапшекод требуют)

Google
Evgeniy
05.03.2018
17:54:37
ну вывести упс это одно

надо ее еще корректно залогировать чтобы потом исправить

Артур Евгеньевич
05.03.2018
17:54:47
какая разница кто его выкинул

Maksim
05.03.2018
17:55:02
Артур Евгеньевич
05.03.2018
17:55:21
я пишу слабосвязанный код, у меня каждый компонент использует другие только чтобы получить то что нужно, а внутрення ебала не собо интересует

+ исключений в том что я могу просто прокидывать их на урвоень выше

Evgeniy
05.03.2018
17:55:36
какая разница кто его выкинул
в одном случае ошибка может быть преодолимой

в другом нет

Evgeniy
05.03.2018
17:55:56
Типы в помощь
я уже писал о типах выше

как о одном из решений

но это плодит лишний класс

Google
Evgeniy
05.03.2018
17:56:40
и именно так сейчас и решеют проблему

Adel
05.03.2018
17:56:52
лишний класс!!!

Evgeniy
05.03.2018
17:57:09
но я написал о ситуации когда 2 функции могут выкинуть именно исключение одного базового типа, InvalidArgumentException или RuntimeException

Артур Евгеньевич
05.03.2018
17:57:26
goto тоже может на уровень вверх кидать )
на конкретнео место в коде...а исключением я просто могу преобразовать "ошибка битого сектора конкретной хуйни" в "ошибку с жестким диском" а ее в "ошибку при записе файла" а ее в "ошибку при сохранении" и т.д и уже действовать и разруливать эти траблы там где это уместно, а не писать лапшу в одом месте

Maksim
05.03.2018
17:57:27
Притягиваешь проблему за уши

Evgeniy
05.03.2018
17:57:33
лишний класс!!!
дело не в экономии на списчка а в том что это усложнение кода

который может усложнить и увеличить в размерах по

Adel
05.03.2018
17:58:11
у меня класс исключения создается на каждую команду

Maksim
05.03.2018
17:58:17
Расскажи это любителям обмазаться голангом. Реально, нахер так жить?)

Evgeniy
05.03.2018
17:58:20
и не париться с ее обработкой и формированием уровнем выше

причем языков на которых базируется огромное количество кода

Артур Евгеньевич
05.03.2018
18:01:07
Evgeniy
05.03.2018
18:01:14
и разработанного по которое работает

Артур Евгеньевич
05.03.2018
18:01:16
и потом через 10 функций ее прокидывать?

Evgeniy
05.03.2018
18:01:26
кому вернуть?
почитай про either как коняш написал для примера

Артур Евгеньевич
05.03.2018
18:01:29
и разработанного по которое работает
это самый неудачный аргумент

Maksim
05.03.2018
18:01:46
Хз чем проще без исключений. Сплошная жопоболь

Артур Евгеньевич
05.03.2018
18:02:01
почитай про either как коняш написал для примера
мне не оч нравится такой подход

Google
Evgeniy
05.03.2018
18:02:03
никто не говорит что надо писать без исключений

но надо учитывать и другие практики

Артур Евгеньевич
05.03.2018
18:02:09
у нас был на преокте судя по гит блейму фанат такого кода

class DummyEntityProvider extends DataEntityProvider { public function initialize(array $data = []) { } /** * @return array|bool */ protected function provideNextData() { return false; } }

Evgeniy
05.03.2018
18:02:19
и знать и возможно иногда они более удобные

Evgeniy
05.03.2018
18:03:16
ну можно писать хипстерский код 2018 только в пхп хипстоты мало

и исключения придуманы далеко не в 2009 году

поэтому 2009 год тоже как то не уместно

Evgeniy
05.03.2018
18:04:45
ну вот классический пример заблуждения это валидация

Артур Евгеньевич
05.03.2018
18:05:01
https://refactoring.guru/ru/replace-error-code-with-exception

Evgeniy
05.03.2018
18:05:14
https://refactoring.guru/ru/replace-error-code-with-exception
Обработку исключений можно превратить в goto-подобный костыль. Не делайте так! Не используйте исключения для управления исполнением кода. Исключения следует выбрасывать только в целях сообщения об ошибке или критической ситуации.

читай там ниже написано

Артур Евгеньевич
05.03.2018
18:05:36
да я читал эт

Evgeniy
05.03.2018
18:05:49
что исключение надо юзать в сообщениях об ошибке или критических ситуациях

а не для возврата результата из функции

Sergey
05.03.2018
18:06:10
но лучше исключения обрабатывать как можно раньше

Like
05.03.2018
18:06:11
Мне вот больше интересное другое Почему вы рассматриваете это с точки зрения языка с динамической типизацией?

Evgeniy
05.03.2018
18:06:12
там не слова нет про использование исключений для возврата из функций

Google
Sergey
05.03.2018
18:06:14
а еще лучше не бросать)

Артур Евгеньевич
05.03.2018
18:06:19
что исключение надо юзать в сообщениях об ошибке или критических ситуациях
а что невозможность вернуть то что мне надо, не считается критической ситуацией?

Evgeniy
05.03.2018
18:06:38
Like
05.03.2018
18:06:46
верни Object и можешь
Ну ты и падлюка...

Evgeniy
05.03.2018
18:06:49
вместо array|bool

он должен делать то что он обещает сделать

если ты написал что вернешь результат то да он должен вернуть результат или крашиться

Артур Евгеньевич
05.03.2018
18:09:36
а ты предлагаешь не крашитсья а вернуть false

Evgeniy
05.03.2018
18:09:59
но ты можешь написать что он вернет нечто с результатом и зависимости от ситуации решать продолжать ли дальше

Артур Евгеньевич
05.03.2018
18:10:16
или еще хуже -замаскирвоанный нуллОбджект

Evgeniy
05.03.2018
18:10:31
нулл обджект это из другой песни

и частный случай maybe

а не either

Evgeniy
05.03.2018
18:11:13
это не обязательно nullObject

и сам nullObject маскирует null

Google
Evgeniy
05.03.2018
18:11:59
а не его маскируют

в качестве примера популярный пример это валидатор

кто то из умных дядек писал что валидатор не должен возвращать исключения довольно большие статьи и писал объяснения по этому поводу

и когда людям начинаешь это говорить, они или соглашаются или говорят что ты не прав и просто перестают говорить типо сказать им нечего уже

не возвращать верней а выкидывать

в теории ты можешь и вернуть исключение через return а не выкинуть его через throw

точно также как и пример работы с фс и выкидывания исключений может в одной ситуации действительно требовать исключения

например нету файла sqlite.db

а в другой не выкидывать исключения и просто нету файла с сессии

поэтому решать за то надо ли выкидывать исключение должен решать не код какой то библиотеки

а конкретно твой код

ну либо будет библиотека выкидывать кучу исключений ты будешь все их слушать (считай обрабатывать) и потом выкидывать свои исключения в случае необходимости

Maksim
05.03.2018
18:22:23
в теории ты можешь и вернуть исключение через return а не выкинуть его через throw
Код станет понятнее, да) По поводу умных дядек: высасывать проблему из пальца - это хорошо. Но бесполезно. Валидатор - 1 из немногих кейсов, которые требуют возврата результата только в силу специфики того, что негоже юзверю построчно ошибки вываливать. А все сразу лучше дать. И то это можно решить исключениями) и ни что, кроме времени больших дядек, не пострадает.

Maksim
05.03.2018
18:24:02
Спасибо, кэп) я про сие написал в конце)

Evgeniy
05.03.2018
18:24:23
я видел и это не занимает много времени

суть не в том сколько времени

Maksim
05.03.2018
18:24:48
Имелось в виду время, потраченное на статьи :)

Страница 542 из 785