Форум: "Начинающим";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
ВнизПравильно ли работаю с потоками? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.009 c