- 1
normalize((a+b)/2)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+15
normalize((a+b)/2)
Прошу извинить, не в тему.
Как ты вообще умудрился это сделать в одном потоке? Запускаешь ProcessMessages из функции, делающей что-то важное с тем объектом? Тогда замути банальный флаг и проверяй его.
> Возникает при MoveFileW с защищенной флешки
Исключений там никаких быть не должно, просто функция вернет не 0, и выставит код ошибки, который ты заберешь через GetLastError. А если винда сама показывает окошко о защищенном от записи диске - то х.з. что делать, это очередные виндопроблемы. Ты никак их не обработаешь ;) Попробуй MoveFileEx, может быть там какой-то флажок поможет.
* имя файла
* размер
* дата помещения
все это делается через критическую секцию, но опасность в том, что если юзер во время сканирования вздумает обновить содержимое карантина, то произойдет возможное обращение из 2 потоков к 1 стриму, со всеми вытекающими. В synchronize тем более нельзя, форма зависнет. Вот и изобретаю всякую х..
Ну может стоит просто заблокировать кнопку "обновить" на время сканирования?
Но на самом деле - всем похуй. Если юзер сам полез портить прогу всякой хуйней для разблокировки кнопочек, все что случится с его инфой - его личные проблемы. Как говорится - ССЗБ.
Ну не баг, а говнофича. И ты неправильно проверяешь результат movefileex. Он не может кидать исключений (т.к. его могут юзать и из языков, не умеющих в исключения). Смотри результат, который она тебе вернет. И если вернуло 0 - проверь код ошибки в GetLastError. От окошка ты не избавишься, но хотя бы как-то отреагировать на непереместившийся файл сможешь.
P.S. Тарас обидится на оффтоп в его треде.
if movefileex(''')=true then
...
Я так и делаю, это просто примерчик.
Упс. всех ботов забанили. Заминусуйте, люди добрые! Прости, Тарас!..
Серьезно чтоли?
Свершилось! Аплодисменты Страйко :)
Прастите меня люди.
А при чём тут прокся?
Молодец. Сила воли - это хорошо.
иного объяснения тому, что он иногда пишет, я не вижу
А почему не хуй?
Всё к хуям свёл наш рассказчик
https://youtu.be/Hh0RbfK7Qec
Банный хуй — главный лекарь.
Баня без хуя — что стол без соли.
В бане хуй дороже денег.
Без хуя баня не парит, а пар не жарит.
Банный хуй душу тешит да тело нежит.
Хуй в бане — всем начальник, всему голова.
Хуй — банный командир, всех побил и царю не спустил.
Хуй мал, да удал — всем порку задал.
Хуй в бане господин, или набольший.
Баня без хуя — что клумба без цветов.
типа это был не ты
ну мы поверим конечно
Урааааа! Алилуйя!!!!
Котаны, нахуя так жить? Нахуя коды возврата в 2013?
Неправильный вопрос. Правильный вопрос - "Котаны, нахуя так жить? Нахуя юзать WinAPI в 2013?"
Бля, да неуместен тут минус, как ты не понимаешь?
Что в нем грязного? Майкрософт в своей доке даже рекомендует его вызывать: "Best practice is that all applications call the process-wide SetErrorMode function with a parameter of SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application.".
http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621%28v=vs.85%29.aspx
P.S. А по дефолту показывает окошки, видимо, ради рукожопых программистов, которые не проверяют коды возвратов и игнорят исключения ;)
"Что в нем грязного? Майкрософт в своей доке даже рекомендует его вызывать: "Best practice is that all applications call the process-wide SetErrorMode function with a parameter of SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application.".", учат заметать дерьмо под палас.
Блядь! Обрабатывать ошибки учат, обрабатывать, а не заметать их под палас. А из-за рукожопых заметателей дерьма, которые игнорят коды ошибок и исключения, винда по дефолту все показывает сама.
Так что включаешь нужные ErrorMode и обрабатываешь ошибки. Либо не трогаешь ErrorMode и удовлетворяешься тем, что винда сделала все за тебя.
P.S. А те, кто включает ErrorMode "чтобы винда не материлась" и не смотрит коды возврата - действительно долбоёбы, заметающие говно под палас.
Я это и имел в виду. Я много раз был свидетелем, когда эта API использовалась в качестве аналога on error resume next в бейсике. Прога давно сошла с пути истинного, казнить давно ее пора, а рантайм, знай себе, один хуй выполняет ее. Пидарасы.
Ну да, это один из основных плюсов исключений - нельзя случайно забыть их обработать.
>>
сразу же забанен как буранчик
как бАранчик
Кто есьм Буранчик?
Что ж делать, неужели пиздовать к упырям на форумы?
Надо дать пользователю то, чего он хочет. Вместо "Подскажите, у меня прога не работает" (даём пользователю повод для троллинга) надо "И вот такое говно мне приходится поддерживать на новой работе :(" или "В наше время в вузах ничему не учат" (даём пользователю повод для повышения ЧСВ путём перечисления всех ошибок).
В случае буранчика надо говорить "Буранчик - потрясающее изобретение советской науки. Жаль, что так всё случилось" :)
Это не я.
На гейдеве.
(___)o(___)
Почему? Случай, что кто-то намеренно их съест и ничего не напишет в лог мы в рассчет не берем т.к. ССЗБ ;)
Ты не понял мою мысль ;)
Если ты не обработал код возврата - программа молча продолжит работу, и натворит что-то не то. Ты даже не узнаешь, что что-то случилось, не говоря уж о причине. Впрочем опытный сишник всегда проверяет все коды возврата, и не парится по этому поводу :)
Если ты не обработал исключение - худшее, что случится - программа просто упадет, показав это исключение. Если же, к примеру, это сервак, и есть catch-all обработчики на уровне запроса/сессии, то просто запишет в лог бектрейс, ответит клиенту, что не выполнен запрос, или порвет с ним связь. При этом корректно освободятся все нужные ресурсы, закроются транзакции и т.п.
С исключениями нет главной проблемы кодов возврата - их нельзя молча и случайно проигнорировать.
-Wunused-result or __attribute__((warn_unused_result));
+
-Werror
Там не or, там and. Ты предлагаешь пометить все функции всех библиотек этим атрибутом? Удачи, она тебе понадобится ;)
Ну или я не умею искать, или его нет. Найди :)
компилятору невозможно да и не нужно отслеживать за качеством использования return value
получились бы уёбищные checked exceptions, только хуже
учитывая насколько сишники упороты в своих char * my_const_string = "ololo!", они бы просто охуели от таких репрессий со стороны вшивого ворнинга
наелся в свое время retcode говна в сишечке
гораздо лучше передавать в функцию boost::system::error_code & - одни профиты
и ссылочный аргумент влёгкую не заигноришь, и засунуть можно куда нить в глубокий коллбек, и не напрягает особо, и в исключение обернуть никогда не сложно
if not DoSomeShit(MyCoolObject) then Exit;
а более детальная информация об ошибке - это одно из полей этого MyCoolObject
Просто ты с тредами мало работал. Вот попадется задачка, в которой какой-то объект надо будет трогать из 100500 тредов, поймешь, почему не стоит пихать в него информацию об ошибке ;)
А для однопоточной проги - сойдет.
а булевый возврат успешности - для удобства
а ещё можно
return
DoSmth1() && DoSmth2() && DoSmth3()...
Одному мне запахло?
А, да я не обращаю внимания на минусы в тредах, где какой-то чудак "въебал всем по минусу".
минуснул, чтобы не повадно было.
Потому что у него безвыходное положение - delphi 7.
А разве это не обертка над MoveFile?
А хер его знает. Скорее да, чем нет. Вот только почему есть перемещение, но нету копирования?
Кстати, Борманд, может, они просто дописали функции, которых "в лоб" нет, чтобы как бы расширить набор файловых функций?
Почему нет? Есть. Тот же StrToFloat кидает исключение.
> Или исключения без сборки мусора противопоказаны?
Да почему. Просто аккуратней надо быть, чем в языках с гц.
Это риторический вопрос? ;)Потому, что д7 написано как бы не 10 лет назад... А в новых может быть и получше ситуация.
Знаешь, я с годами всё больше убеждаюсь, что ты прав. Исключения действительно не нужны.
Может ты пояснишь, чего они так тащутся от boost::call_traits? Совершенно же многословные унылые сопли.
а где работаешь ты, %юзернейм%?
я и не думал, что скилл гугления может быть меньше нуля. Поздравляю.
"Отзывы
Всем привет, на данный момент купил себе BMW X5... Пригнал мне из Германии Роман Кашицын, огромное спасибо ему!
Михаил, 09.03.2013."
Тут должно быть что-нибудь про кавказцев.*
На аве у него хороший кавказец.
Борманд нам ещё нужен.
Первый этаж, можно и в окно :)
"Школьнику" около 40 лет, он средней упитанности а еще у него темные волосы и карие глаза.
Идентификация Борманда.
http://s2.developerslife.ru/public/images/gifs/4e69d8e4-ba48-4a60-b70a-af673a56b7a3.gif
Узрел себя в оном отроке?
"Визуальный бот" от Stertor-а.