Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Вопрос к тестировщикам

5427   5 6 7 8 9 10 11 12 13 14 15 все
AlexNek патриот20.08.19 18:45
AlexNek
NEW 20.08.19 18:45 
в ответ Murr 19.08.19 12:23
это крутой прогер... особенно - если хорошо проварить...

так может рецептом поделишься?

В гости к нам не собираешься? бебе

AlexNek патриот20.08.19 18:48
AlexNek
NEW 20.08.19 18:48 
в ответ Программист 20.08.19 08:39
Сгенерировать исключение в случае, если нет доступа к БД или к файлу - это вполне себе "нормально работающая программа".

Безусловно, а вот если исключение генерится, но никакой ошибки нет.

Программист коренной житель21.08.19 08:44
NEW 21.08.19 08:44 
в ответ AlexNek 20.08.19 18:48
Безусловно, а вот если исключение генерится, но никакой ошибки нет.

Что значит нет никакой ошибки? Ты же понимаешь, что надо определить, что ты называешь ошибкой? :)

Вот например, при итерации кидается исключение, если коллекция каким-либо образом изменена. Это ошибка?

Или например кинуть исключение, если не удалось соедениться с удаленным хостом. Это ошибка?


Murr патриот21.08.19 15:47
Murr
NEW 21.08.19 15:47 
в ответ Программист 19.08.19 15:15

Ну т.е. вызодить из цикла и/или рекурсии по исключению

-----

Никогда не считал подобное нормальным.

Хотя пару раз - пользовался и даже объяснял молодой девахе что с точки зрения управления так можно, но есть куча вопросов.


Я обернул твой говно код в оболочку и...

-----

...нарушил начальное утверждение - выход из рекурсии посредством ехцептиона.



На вопрос "можно ли управлять работой программы исключениями" ответ да.

-----

Посредством генерации ошибок? Да, разумеется можно...

Блин... вот почти как сейчас - в бэкграунде прожка тянет данные по запросу с сервака...

уже 38 минут... еще даже первую секцию не вытянула... а секций - с десяток...

Как хочется ее ехцептировать... и это будет исключительно правильное решение...

К сожалению деньги платят за другое...



Murr патриот21.08.19 15:57
Murr
NEW 21.08.19 15:57 
в ответ Программист 20.08.19 08:39

Сгенерировать исключение в случае, если нет доступа к БД или к файлу - это вполне себе "нормально работающая программа".

------

Для тебя - да.

Для меня - нормальным будет логирование события - "потеряна связь с сервером" и переход на чуточку другой протокол работы с тем же сервером. Ну нельзя мне мне останавливаться из-за мелких сбоев в сети. Тем более что сбои в сети - явление обычное.


Сейчас вместо возврата значения ошибки кидают исключение и да это "нормально работающая программа".

-----

Это - ужас - после выброса исключения никто не гарантирует определенного состояние системы - место выброса жестко не определено.

Особенно, если не смотреть что там окружении шебуршится...

При "коде возврата" хоть что-то гарантировалось.

Murr патриот21.08.19 16:07
Murr
NEW 21.08.19 16:07 
в ответ AlexNek 20.08.19 18:45

так может рецептом поделишься?

-----

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

Сажается на проект. Медленно, чтобы не заметил проблем и не соскочил.

Потом начинается готовка. Многие практикуют начинание с запарки.

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

- сделать юниора скажем миддлом и добавить жару.

Потом, когда устаканится и перекипятится миддле - можно еще поднять

градус - сделать сениором и если на проекте сидит плотно - варить на

полном огне до готовности проекта.

Когда проект дойдет до готовности... сениор прогер все еще не будет

готов - можно подсадить на два и более проекта... но - осторожно - чтобы

не сорвался с криком "что Я вам лошадь ломовая что ли?"...

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

понимает что происходит, но устойчиво сидит на множестве проектов

и варится, варится, варится...

Признаком дохождения до крутого состояния является готовность взять

еще несколько проектов... тут главное не дать сорваться в свободное

плавание или собственный бизнес...

Murr патриот21.08.19 16:11
Murr
NEW 21.08.19 16:11 
в ответ Программист 21.08.19 08:44

Что значит нет никакой ошибки?

-----

Ну нет ошибки - просто пакет ушел на другой хост. Ответ от него, кстати, на уровне TCP/IP можно получить, но там на оговоренном порту нет нужного сервиса...

Программист коренной житель21.08.19 16:20
NEW 21.08.19 16:20 
в ответ Murr 21.08.19 15:47
Никогда не считал подобное нормальным.

Ну это уже твои тараканы ;)


...нарушил начальное утверждение - выход из рекурсии посредством ехцептиона.

В твоем говно-коде иначе нельзя было


Программист коренной житель21.08.19 16:26
NEW 21.08.19 16:26 
в ответ Murr 21.08.19 15:57
Для меня - нормальным будет логирование события - "потеряна связь с сервером" и переход на чуточку другой протокол работы с тем же сервером. Ну нельзя мне мне останавливаться из-за мелких сбоев в сети. Тем более что сбои в сети - явление обычное.

Да ты просто не знаешь чем отличается генерация ошибки от обработки ошибки :)


Это - ужас - после выброса исключения никто не гарантирует определенного состояние системы - место выброса жестко не определено.

Тебя просто нельзя допускать к современным проектам. Вот кодить на ANSI C где-нибудь в 70х годах - это твое :)


При "коде возврата" хоть что-то гарантировалось.

Ничерта там не гарантировалось. Говно-код можно писать используя любой язык программирования и любой способ возврата ошибки. Будь то исключение или "код возврата"

Программист коренной житель21.08.19 16:28
NEW 21.08.19 16:28 
в ответ Murr 21.08.19 16:11
Ну нет ошибки - просто пакет ушел на другой хост. Ответ от него, кстати, на уровне TCP/IP можно получить, но там на оговоренном порту нет нужного сервиса...

И опять пошла морока про коварный зарубеж (с) Высоцкий


Надоело переливать из пустого в порожнее.

AlexNek патриот21.08.19 22:28
AlexNek
NEW 21.08.19 22:28 
в ответ Программист 21.08.19 08:44
что надо определить, что ты называешь ошибкой?

Хм оказывается точного определения и нет.

https://studopedia.ru/15_119158_opredelenie-ponyatiya-oshi...


Можно сказать так, что если программа работает как ожидается, то ошибок нет.

Если цикл должен крутиться 5 раз и он все 5 раз крутится, то ошибок нет. Если же он на 5-й раз выходит по эксептион, то это непорядок.


Вот как раз свежий примерчик, до пятницы при старте программы мне нужно было нажать один раз ф5 и всё было нормально.

Теперь приходится делать раз 10 потому как вываливаются исключения которые в принципе не влияют на работу программы, но являются неприятными для меня.

Murr патриот22.08.19 01:19
Murr
NEW 22.08.19 01:19 
в ответ Программист 21.08.19 16:20

твоем говно-коде иначе нельзя было

------

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

Но даже это не меняет сути - выход по эхцетиону из рекурсии илии вложеных циклов - это большой геморой, как и вся эхцептионская срань...

Программист коренной житель22.08.19 08:43
NEW 22.08.19 08:43 
в ответ AlexNek 21.08.19 22:28
Можно сказать так, что если программа работает как ожидается, то ошибок нет.
Если цикл должен крутиться 5 раз и он все 5 раз крутится, то ошибок нет. Если же он на 5-й раз выходит по эксептион, то это непорядок.

Ну ОК, а если цикл крутится 4 раза, после этого вылетает исключение. Исключение это обрабатывается и цикл запускается еще раз. И так до тех пор, пока он (цикл) не прокрутится 5 раз. В этом случае ошибка есть или еще таки нет?


Вот как раз свежий примерчик, до пятницы при старте программы мне нужно было нажать один раз ф5 и всё было нормально.
Теперь приходится делать раз 10 потому как вываливаются исключения которые в принципе не влияют на работу программы, но являются неприятными для меня.

И что? Это неисправленные ошибки или нет?

Программист коренной житель22.08.19 08:54
NEW 22.08.19 08:54 
в ответ Murr 22.08.19 01:19
Однако мой говнокод для тебя есть говнокод внешний, из окружения, которое, по твоему изначальному утверждению, знать не требуется.

Я также говорил, что исходить надо из того, что окружение работает без ошибок. Если ошибки там все таки есть, значит их надо нивелировать (если это возможно). В данном случае мы имеем дело с банальным багом.


Но даже это не меняет сути - выход по эхцетиону из рекурсии илии вложеных циклов - это большой геморой, как и вся эхцептионская срань...

Вот только эта хрень делает код читабельным, сопровождаемым и тестируемым, а также упрощает отладку (если конечно не попадаются мудаки, которые "проглатывают" исключения)

Murr патриот22.08.19 10:42
Murr
NEW 22.08.19 10:42 
в ответ Программист 22.08.19 08:54
Если ошибки там все таки есть, значит их надо нивелировать

------

Сегодняшний выхлоп:

Exception thrown: 'Oracle.DataAccess.Client.OracleException' in Oracle.DataAccess.dll

Exception thrown: 'System.Net.Sockets.SocketException' in System.dll

Exception thrown: 'System.Net.WebException' in System.dll

Exception thrown: 'System.Net.WebException' in System.dll

Exception thrown: 'System.Net.WebException' in System.dll

Exception thrown: 'System.Net.Mail.SmtpException' in System.dll


Это вся информация.


Эээ... добавлю - данные - получены. 45К строк...

Ну и что будем нивелировать? Чтобы повторить результат надо часов 6... может - 8+...


В случае с ZigBee - там нет ошибок. Там есть элементарное непонимание того с чем надо работать.


Murr патриот22.08.19 10:47
Murr
NEW 22.08.19 10:47 
в ответ Программист 22.08.19 08:54

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

-----

Хи-хи... Это Я про твое решение по рекурсии...

Программист коренной житель22.08.19 11:16
NEW 22.08.19 11:16 
в ответ Murr 22.08.19 10:42

Это вся информация.


Эээ... добавлю - данные - получены. 45К строк...

Ну и что будем нивелировать? Чтобы повторить результат надо часов 6... может - 8+...

Ты так нихрена и не понял.


В случае с ZigBee - там нет ошибок.

Ну и отлично. Значит все работает как надо :)


Там есть элементарное непонимание того с чем надо работать.

Ну так топай своей проторенной дорожкой - разбирайся.


Хи-хи... Это Я про твое решение по рекурсии...

В моем промере исключение обрабатывается, а не проглатывается.

AlexNek патриот22.08.19 20:00
AlexNek
NEW 22.08.19 20:00 
в ответ Программист 22.08.19 08:43
после этого вылетает исключение

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

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

Murr патриот23.08.19 11:58
Murr
NEW 23.08.19 11:58 
в ответ AlexNek 22.08.19 20:00

А если сам

-----

Хи-хи... для него - без разницы - главное обработать исключение, а откуда и почему - не важно... :)

Программист коренной житель23.08.19 13:17
NEW 23.08.19 13:17 
в ответ AlexNek 22.08.19 20:00
если вылетает, потому что допустим соединение прервалось,то это ошибка и правильно
А если сам выбрасываешь исключение чтобы цикл по новому запустить, то это уже непорядок.

Почему не порядок? Вот предположим, ты отправляешь сообщение и ответом на это сообщение является 5 сообщений от удаленного сервиса. Ты принял 4 сообщения, а вместо 5-ого сообщения ты принял нечто, чего ты не ожидал. Т.е. соединение не рвалось и о возникшей ошибке знаешь только ты. Выход - сгенерировать исключение. Почему же это непорядок?

5 6 7 8 9 10 11 12 13 14 15 все