Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.20;
Скачать: CL | DM;

Вниз

Правильно ли работаю с потоками?   Найти похожие ветки 

 
antonn ©   (2011-07-27 17:34) [40]


> причем тут с начала, когда если пишешь код [32] то ССЗБ

а если этот код пишет борланд?

но вернемся к моей просьбе: Герман высказался против пустой секции, я высказался что такое решение омеет право на жизнь в зависимости от ситуации. меня начали переубеждать в обратном, т.е. что пустой секции никогда и ни при каких обстоятельствах быть не должно. Такая логика? Вот и смеюсь, такие все жутко правильные и педантичные куда бы деться :)


 
antonn ©   (2011-07-27 17:40) [41]

Еще один примерчик: у меня программа строит списки, время от времени их пересчитывая, большие списки. И переодически сбрасывает кеш данных на диск. Если при запуске кеш окажется валидным то он будет загружен и пока будет идти перерасчет узер увидит данные за такое-то время сформированные (он и так вообще-то смотрит только данные кеша, который строится на этих вот больших списках, поэтому при старте программы кеш пустой и юзер смотрит в пустой экран).
Так вот мне глубоко пофиг почему не записался кеш, пофиг что там файл был занят, что было реад_онли, что винчестер сглючил или вообще пути для кеша не существует. Ну получу я код ошибки запрета записи на диск, и чего? юзеру это не нужно, а вполне вероятно он не сделает того о чем я его попрошу на основании этой ошибки (дать доступ на запись). А запишется кеш - ну и замечательно. Нет - переживем.


 
Dennis I. Komarov ©   (2011-07-27 17:42) [42]

А еще был приведен довольно неудачный пример, якобы когда это допустимо...


 
antonn ©   (2011-07-27 17:48) [43]


> Dennis I. Komarov ©   (27.07.11 17:42) [42]

какой именно?


 
Dennis I. Komarov ©   (2011-07-27 17:58) [44]

И его? Если юзеру не надо видеть эту ошибку, то не показывай ее, но это не является основанием для того что-бы оставить пустой блок except. Реализуй различные режимы, при которых можно посмотреть некое отладочное окно, дабы после можно было получить действительно "нет доступа". Потому как иначе, кто-нить потом чего-нить оторвет...


 
Dennis I. Komarov ©   (2011-07-27 17:58) [45]


> какой именно?

update


 
antonn ©   (2011-07-27 18:04) [46]


> Dennis I. Komarov ©   (27.07.11 17:58) [45]
>
>
> > какой именно?
>
> update

какой update?


> Реализуй различные режимы, при которых можно посмотреть
> некое отладочное окно, дабы после можно было получить действительно
> "нет доступа".

какое еще окно и кто в него будет смотреть? нет доступа для чего? мы сейчас обсуждаем пример с кешем? так юзеру вообще все равно где там нет доступа, а мне так же все равно есть ли кеш или нет. Если есть - хорошо, но не обязательно, лишний поклон перед юзером. Если нет - ну подождет до первого перерасчета данных, посмотрит на анимацию. Момент не критичный. Более того, в этом примере вообще нет обратной связи, поток вызывается и о нем, по сути, забываем.


 
Игорь Шевченко ©   (2011-07-27 19:12) [47]


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


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

Исключения-наследники EExternal или EHeapException, например, не игнорируются никогда. Я не уверен, что пишу безупречный код и тем более не уверен, что вызываемый мной сторонний код безупречен. Так пусть лучше сломается с треском.


 
antonn ©   (2011-07-27 19:15) [48]


> Так пусть лучше сломается с треском.

а если служба, никтож не увидит


 
Игорь Шевченко ©   (2011-07-27 21:05) [49]


> а если служба, никтож не увидит


А вот оракл под виндой тоже служба, а при падениях пишет в EventLog и в свой Alert log. Потом есть что почитать.


 
sniknik ©   (2011-07-27 21:13) [50]

> никтож не увидит
в службу поддержки тебя, на вразумление, после будешь знать этого "Никто"... в зеркале брить его будешь.


 
antonn ©   (2011-07-27 21:34) [51]


> в службу поддержки тебя, на вразумление, после будешь знать
> этого "Никто"... в зеркале брить его будешь.

ну не злись, все хорошо :)
речь как раз о том что никто не увидит если это будет мессаджбокс из под system не на декстопе юзера. Ярость глазки залила, это небыло сказано в контексте "все равно никто не увидит" =))


> Игорь Шевченко ©   (27.07.11 21:05) [49]
>
>
> А вот оракл под виндой тоже служба, а при падениях пишет в EventLog и в свой Alert log. Потом есть что почитать.

я так понял что эти эксепшны не обрабатываются и потому вылезают "стандартные" диалоги ошибок?


 
Игорь Шевченко ©   (2011-07-27 21:51) [52]

antonn ©   (27.07.11 21:34) [51]


> я так понял что эти эксепшны не обрабатываются и потому
> вылезают "стандартные" диалоги ошибок?


Если ты мой пост [47] имеешь в виду, то стандартных диалогов не вылезает, потому что на верхнем уровне стоит обработчик необработанных исключений, который пишет журнал ошибок (а для сервисов и/или в EventLog) с трассировкой стека, последними выполненными действиями, еще набором всяких данных, и отсылает, если заказано, письмо со всей этой информацией на указанные адреса. Такой вот Error reporter в миниатюре.

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


 
Германн ©   (2011-07-28 00:26) [53]

Удалено модератором


 
antonn ©   (2011-07-28 00:30) [54]

Удалено модератором


 
Германн ©   (2011-07-28 00:37) [55]

Удалено модератором


 
Германн ©   (2011-07-28 00:51) [56]

Удалено модератором


 
antonn ©   (2011-07-28 01:23) [57]


> Как заранее знать что критично, а что нет не будучи господом
> богом?

на этапе планирования, разумеется :) когда там ТЗ составляется?


> +1

ты бы прочитал [51], а то "плюсадинишь" и выглядишь глупо :)


 
Германн ©   (2011-07-28 01:30) [58]

Удалено модератором


 
antonn ©   (2011-07-28 02:18) [59]


> Но тоже как любой технарь имею жизненный опыт техподдержки.

а то что sniknik не так понял мою фразу - это не важно? опыт техподдержки гораздо важнее, там важно быстро и точно ответить на вопрос который не задавался, молниеносно объяснить юзеру почему он не прав и что на самом деле у него все работает нормально :) "знаем, плавали"


 
MonoLife ©   (2011-07-28 07:32) [60]

оставьте в покое antonn"a!:)
ТС с опытом поймет в чем был не прав и как нужно делать, а как не рекомендуется.. Для чего-то ж существуют грабли, тяпки & etc ...:)


 
sniknik ©   (2011-07-28 08:13) [61]

Удалено модератором


 
antonn ©   (2011-07-28 11:09) [62]


> необработанный/пустой ексепт с сообщением у юзера..

нужно читать сообщения выше


> или то что ты стебешся отстаивая "возможность" (приводя
> кривые примеры), т.к. "противная сторона" говорит "никогда
> и ни при каких обстоятельствах"...? ну так покажи где она
> это сказала,

[40]
читай возле выделенного, там есть все, там же есть вопрос - можешь ответить на него и написать почему на мои утверждения "что может быть" меня переубеждают "не может". Логическую нить сохраняем :)


 
antonn ©   (2011-07-28 11:18) [63]

ну и включу КО, дабы помочь восстановить логическую цепочку, а то я смотрю некоторые читают только последнюю страницу.
[47] Игорь написал что игронирует те исключения в которых уверен (я в борланде тоже был уверен... :)), и если что - сломается с треском.
[48] если пложение в виде службы то мессаджбокс не увидим, а евентах (если самому ничего не делать дополнительного) будет что-то типа "Не найдено описание для события с кодом ( 0 ) в источнике ( ***** ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL с..". Т.е. чтобы уловить причину нужно ее отработать в этом случае. Потому что без try..except (даже пустой) приложение может вообще упасть, и без уведомлений почему она это сделала.
[49] Игорь говорит тоже самое на примере службы оракла - та пишет логи
[50] Господин в ярости блистает красноречием, отквотив [48] О_о
[56] Герман ставит плюсадин. Ты вообще с чем там хотел быть согласен, а?


 
antonn ©   (2011-07-28 11:20) [64]

PS тему в прочее не перенесете?


 
Anatoly Podgoretsky ©   (2011-07-28 11:21) [65]

> antonn  (27.07.2011 16:44:28)  [28]

И в итоге имеем вечное НЕТ и проклятье пользователей или службы поддержки


 
Loginov Dmitry ©   (2011-07-28 11:28) [66]


> Для чего-то ж существуют грабли, тяпки


+1

Понимание приходит с опытом.


 
Anatoly Podgoretsky ©   (2011-07-28 11:28) [67]

> antonn  (28.07.2011 11:20:04)  [64]

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


 
Dennis I. Komarov ©   (2011-07-28 11:38) [68]


> Понимание приходит с опытом.

Да пускай получает шишки, но зачем других толкать на "заграбленный" путь?


 
sniknik ©   (2011-07-28 11:38) [69]

> читай возле выделенного, там есть все
читаю...
> т.е. что пустой секции ... быть не должно.
что "все" в этом есть?

> там же есть вопрос
а вопрос... т.е. вопрос (там где знак ? в конце предложения)
> Такая логика?
какая логика? и чья? ведь все, что было до этого вопроса ты частично выдумал, частично, извратил. на что отвечать?

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

> меня переубеждают "не может".
не "не может", а "не должно быть", и желательно никогда... и даже если есть ОЧЕНЬ ОЧЕНЬ редкая, с вероятностью стремящейся к 0, крайняя необходимость, не по приведенному тобой, глупому примеру, где ее нет, а реальная, даже не могу придумать где и как оно может возникнуть... но допустим есть. даже в этом случае рекомендуется еще раз подумать... а после наполнить "пустой" блок ексепта подробным комментарием почему он пуст...
если бы "не может" то это была бы синтаксическая ошибка.


 
antonn ©   (2011-07-28 11:46) [70]


> и даже если есть ОЧЕНЬ ОЧЕНЬ редкая, с вероятностью стремящейся
> к 0, крайняя необходимость

значит может, не так ли?


> даже не могу придумать

ключевое. Почему-то тут много спецов которые начинают опираться только на свой опыт, зашоренность мешает. Так же как про окна выше всех, окна не сворачивающиеся по win+d и прочее - везде летят каки что так нельзя, резко так отвечают. Вот как раз опыта мало. И если я (это же я!!! да я!..) не могу придумать - то этого нет. Как в детском садике - "Я в домике!" :)


> если бы "не может" то это была бы синтаксическая ошибка.

кавычки


> а после наполнить "пустой" блок ексепта подробным комментарием
> почему он пуст...

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


 
Dennis I. Komarov ©   (2011-07-28 11:52) [71]

"Ты что, дальтоник, Скрипач — зелёный цвет от оранжевого отличить не можешь?" (C)


 
sniknik ©   (2011-07-28 12:01) [72]

> Почему-то тут много спецов которые начинают опираться только на свой опыт, зашоренность мешает.
про него и спрашивали, опыт. ты еще "теме"? перечитай вопрос.

а не придуманные ситуации, которых в принципе не должно быть.

не "зашорен"? ну так приведи пример когда это РЕАЛЬНО необходимо.

> и что изменит комментарий в блоке в работающей программе? речь идет не о комментировании
отношение к тебе... возможно спасет от увольнения. ну после того как из-за твоих "тараканов" отдел поддержки пару месяцев потеряет, а фирма пару тройку клиентов...
если там будет действительно что-то серьезное, и по другому никак, написано, и эксперт с этим согласится.
> а не о сообщении кому либо кода ошибки
вообще претензии к тебе не из-за "сообщения кому либо", а из-за сокрытия факта глюка пустым ексептом... разница однако. если не видишь ее, да еще и упорно отрицаешь...  ну не о чем с тобой больше говорить.


 
sniknik ©   (2011-07-28 12:04) [73]

> ну так приведи пример когда это РЕАЛЬНО необходимо.
хотя... выдуманный пример в этой теме будет офтопиком. приводи реальный, из опыта... и не боись, мы тебя из-за этого в зашоренности обвинять не будем.


 
Игорь Шевченко ©   (2011-07-28 12:12) [74]

Предлагаю всем воюющим сторонам внимательно прочитать
http://delphikingdom.com/asp/viewitem.asp?catalogid=1392
после чего воевать с аргументами.


 
antonn ©   (2011-07-28 12:15) [75]


>
> а не придуманные ситуации, которых в принципе не должно
> быть.

[41] реальная ситуация


 
antonn ©   (2011-07-28 12:24) [76]

ладно, с позволения я тот пост сюда перенесу, чтобы на одной странице был и поближе:
Еще один примерчик: у меня программа строит списки, время от времени их пересчитывая, большие списки. И переодически сбрасывает кеш данных на диск. Если при запуске кеш окажется валидным то он будет загружен и пока будет идти перерасчет узер увидит данные за такое-то время сформированные (он и так вообще-то смотрит только данные кеша, который строится на этих вот больших списках, поэтому при старте программы кеш пустой и юзер смотрит в пустой экран).
Так вот мне глубоко пофиг почему не записался кеш, пофиг что там файл был занят, что было реад_онли, что винчестер сглючил или вообще пути для кеша не существует. Ну получу я код ошибки запрета записи на диск, и чего? юзеру это не нужно, а вполне вероятно он не сделает того о чем я его попрошу на основании этой ошибки (дать доступ на запись). А запишется кеш - ну и замечательно. Нет - переживем.

Поподробнее: в конфигурации программы указаны некоторые объекты (сервер pos-терминалов), программа загружает этот список серверов, коннектится на каждый, вытягивает списки самих pos-терминалов, опрашивает их, записывает результат обработки в результирующий список (путь будет list2). Переодически повторяет процедуру, сама она может занимать от 5 до 15 минут (в зависимости от кол-ва просматриваемых серверов).
Пользователь со стороны gui смотрит как раз результат обработки, причем работа с этой программой не является постоянной его деятельностью, а по необходимости (как раз для техподдержки, ага).
Этот list2 я иногда выгружаю в файловый кеш, дабы после перезапуска программы я мог загрузить этот кеш (если он валидный - по времени и структуре не "устарел") чтобы пользователь мог наблюдать результаты предыдущей проверки, а не смотреть в пустые окна ожидая пока пройдет первая обработка. Так вот этот пункт - не обязательный, и введен лишь как мелкое удобство для пользователя. Если я не смогу сохранить кеш - никто не умрет, пустой экран при перезапуске программы с уведомлением что идет перерасчет данных является нормальным. Однако если там что нибудь отобразится - хорошо.
Запись в файл идет в отдельном потоке, и этот поток никак не должен повлиять на работу сервиса в целом. Код ошибки мне не нужен, потому стоит try..except с пустой секцией обработки исключения.


 
sniknik ©   (2011-07-28 12:31) [77]

> Предлагаю всем воюющим сторонам внимательно прочитать
читал, и даже частично использую... могу дополнить - ексепты indy (не вдаваясь в обсуждение их самих) - EIdHTTPProtocolException, и ADO (если нужны полные "трассируюшие" ексепты от много командных скриптов) требуют особой обработки (по ссылке не разбирается) если хотим полную информацию, на ексепт с пустым месейджем например.

> [41] реальная ситуация
это не ситуация, это дурость, это ты почему то решил что юзеру не хочется видеть данные, а хочется смотреть в пустой экран. но как только кто-то обратится в поддержку с требованием "сделать нормально, вон у Васи все показывает", так поддержка тебя и проклянёт.


 
antonn ©   (2011-07-28 12:41) [78]


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

а еще юзеру не хочется работать, хочется пить пиво и временами рыжую бабу.
по существу еще что нибудь есть что сказать?


> но как только кто-то обратится в поддержку с требованием
> "сделать нормально, вон у Васи все показывает", так поддержка
> тебя и проклянёт.
>

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


 
sniknik ©   (2011-07-28 12:58) [79]

> по существу еще что нибудь есть что сказать?
в службу поддержки тебя, на вразумление...

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


 
sniknik ©   (2011-07-28 13:00) [80]

вообще хорошие аргументы, если что, то "а мне это не нужно", хотя рассуждения до этого были глобальными, и советы тоже.



Страницы: 1 2 3 вся ветка

Текущий архив: 2011.11.20;
Скачать: CL | DM;

Наверх




Память: 0.66 MB
Время: 0.013 c
15-1311763634
KSergey
2011-07-27 14:47
2011.11.20
Про хитро-задачки


8-1204086962
DoKi
2008-02-27 07:36
2011.11.20
opengl2 треугольники


1-1273589288
guest
2010-05-11 18:48
2011.11.20
Закорючки в Excel


15-1311359973
Дмитрий С
2011-07-22 22:39
2011.11.20
Особые права на файлы: запрет чтения собственных файлов


15-1311712200
Юрий
2011-07-27 00:30
2011.11.20
С днем рождения ! 27 июля 2011 среда