↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы

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

#NIDNQK / @komar / 4324 дня назад

эксепошны должны быть для того чтобы нижний код репортил эксепшн, верхний код решал что делать и давал возможность нижнему это сделать. остальное это дроч и бесполезная хуйта
#NIDNQK/2QN / @ninesigns / 4324 дня назад
@4da Ебать ты гений.
#NIDNQK/J7S / @komar --> #NIDNQK/2QN / 4324 дня назад
@komar ну так епт // хуле ты там пересматривать собрался?
#NIDNQK/QY5 / @ninesigns --> #NIDNQK/J7S / 4324 дня назад
@4da Съеби.
#NIDNQK/UWF / @komar --> #NIDNQK/QY5 / 4324 дня назад
@komar хуйта
#NIDNQK/IJN / @ninesigns --> #NIDNQK/UWF / 4324 дня назад
ты может не тем языком погроммирования пользуешься?
#NIDNQK/77X / @hirthwork / 4324 дня назад
@hirthwork ПОЛЬЗУЙТЕСЬ ЖАБОЙ АНАЛИЗАТОР ЗА $39.99 НАЙДЕТ ВСЕ НЕОБРАБОТАННЫЕ ЭКСЕПШОНЫ!
#NIDNQK/TTV / @komar --> #NIDNQK/77X / 4324 дня назад
@komar Ты какой-то ебанутый.
#NIDNQK/M7X / @fix --> #NIDNQK/TTV / 4324 дня назад
@polecat > прежде чем кукарекать на ООП-парашу, неплохо бы её осилить. > ООП > эксепшоны Блять, здесь все ебанулись?
#NIDNQK/205 / @komar --> #NIDNQK/U78 / 4324 дня назад
ну так непойманных эксепшеннов быть не должно, хотя энивей пойму как они мешают локализовать проблему
#NIDNQK/WRJ / @krkm / 4324 дня назад
@polecat только maybe не ебет control flow
#NIDNQK/KDQ / @ninesigns --> #NIDNQK/U78 / 4324 дня назад
@krkm ент, похоже кто-то не может в дебаггер
#NIDNQK/UAR / @mugiseyebrows --> #NIDNQK/WRJ / 4324 дня назад
@mugiseyebrows Именно. Приходится запускать дебаггер и ебаться, а меня это заебывает.
#NIDNQK/CB6 / @komar --> #NIDNQK/UAR / 4324 дня назад
@komar бэктрейс включи. OCAMLRUNPARAMS=b и будет локализовано, за некоторыми исключениями.
#NIDNQK/DNC / @gds --> #NIDNQK/CB6 / 4324 дня назад
@polecat пруф чего? Maybe не дает тебе non local exit, впрочем как и эксепшены в этом вашем хаскеле
#NIDNQK/Y0M / @ninesigns --> #NIDNQK/I1Z / 4324 дня назад
@gds А если у меня вебсервер, который ловит любое исключение и плюется им в лог?
#NIDNQK/IWB / @komar --> #NIDNQK/DNC / 4324 дня назад
@komar чем тебя отсутствие исключений спасло бы? авось как-нибудь бы заработало? исключения же не на ровном месте бросают
#NIDNQK/PFR / @krkm --> #NIDNQK/CB6 / 4324 дня назад
@krkm Съеби.
#NIDNQK/Q3V / @komar --> #NIDNQK/PFR / 4324 дня назад
@komar куда? в твой манямирок?
#NIDNQK/6DJ / @krkm --> #NIDNQK/Q3V / 4324 дня назад
@komar если ты не можешь подключиться к упавшенму коду на сервере, не посмотреть чо там пизданулось и не рестартнуть обработку странички с правильными параметрами, то действительно нахуй такие эксепшены, которые просто выблевываются в виде HTML параши в выдаче.
#NIDNQK/YKG / @ninesigns --> #NIDNQK/IWB / 4324 дня назад
@4da Лол, я должен VPS заморозить, чтобы «посмотреть что там пизданулось»?
#NIDNQK/VFG / @komar --> #NIDNQK/YKG / 4324 дня назад
@komar нет, рантайм твоего язычка должен уметь останавливать выполнение процесса, чтобы ты мог подключиться туда отладчиком и посмотреть чокак.
#NIDNQK/IUP / @ninesigns --> #NIDNQK/VFG / 4324 дня назад
@4da > останавливать выполнение вебсервера в продакшне О’кей!
#NIDNQK/I94 / @komar --> #NIDNQK/IUP / 4324 дня назад
@komar ``` Изивините. Наш веб-магазин пизданулся при оплате товара. Но ваши биткоины не проебаны! В течение часа наш специалист Александр Марков зайдет на пизданувшуюся страничку с дебаггером и рестартанет выполнение. Просто дрочите F5 и вам все прибудет. ```
#NIDNQK/3YG / @ninesigns --> #NIDNQK/I94 / 4324 дня назад
@4da это
#NIDNQK/5HV / @komar --> #NIDNQK/3YG / 4324 дня назад
@komar просто быдло/рабы не умеют писать код, у которого не бывает исключительных ситуаций (все го в статику)
#NIDNQK/KKJ / @krkm --> #NIDNQK/I94 / 4324 дня назад
#NIDNQK/BZU / @krkm --> #NIDNQK/WRI / 4324 дня назад
@polecat > запустил 100 инстансов на мегасервере > все поймали один и тот же эксепшон > все 100 инстансов ждут появления Александра Маркова
#NIDNQK/3W0 / @komar --> #NIDNQK/WRI / 4324 дня назад
@komar Printexc.get_backtrace ()
#NIDNQK/Y1T / @gds --> #NIDNQK/IWB / 4324 дня назад
@gds О, ёптвою! Спасибо.
#NIDNQK/JXD / @komar --> #NIDNQK/Y1T / 4324 дня назад
@polecat Разумеется, в несвежем коде ошибок не бывает.
#NIDNQK/7Z4 / @komar --> #NIDNQK/KNS / 4324 дня назад
@polecat ну так и if можно назвать ебущим flow-control и вычисление функции, но мы-то знаем.
#NIDNQK/WOX / @ninesigns --> #NIDNQK/4JY / 4324 дня назад
@polecat Блять, ты пиздонщик со 100% покрытием тестами, что ли?
#NIDNQK/J83 / @komar --> #NIDNQK/TUZ / 4324 дня назад
@komar >удаляешь все throw из кода >теперь код просто не падает, а делает хуй пойми что
#NIDNQK/JEK / @krkm --> #NIDNQK/3W0 / 4324 дня назад
@polecat Съеби лучше.
#NIDNQK/7VN / @komar --> #NIDNQK/W0W / 4324 дня назад
@komar в твоей хуйне трейсы неискоробки? ппц отсос почище жс
#NIDNQK/INY / @krkm --> #NIDNQK/JXD / 4324 дня назад
@polecat курл в кроне
#NIDNQK/6JQ / @krkm --> #NIDNQK/W0W / 4324 дня назад
оп пидорас и ебет жаваскрипты! безблагодраность и хуй в сраку ему за это
#NIDNQK/263 / @muromec / 4324 дня назад
@muromec ебу окамл // куркуме не говори, унижать будет
#NIDNQK/ZR1 / @komar --> #NIDNQK/263 / 4324 дня назад
@muromec в жс нет таких проблем
#NIDNQK/N24 / @krkm --> #NIDNQK/263 / 4324 дня назад
@krkm съеби, умудок
#NIDNQK/JXM / @muromec --> #NIDNQK/N24 / 4324 дня назад
@gds Бля, а бектрейс чего эта поебень показывает? > ERROR: Responce failed with Io.Error("кококо даркс обосрался") > Raised at file "src/core/lwt_sequence.ml", line 95, characters 10-15 > Called from file "src/core/lwt_pool.ml", line 70, characters 18-47
#NIDNQK/66A / @komar --> #NIDNQK/Y1T / 4324 дня назад
@komar В смысле, оно мне сейчас высрало бектрейс вполне обычного ексепшона из недр lwt, который обработался и все хорошо. Куда мне этот get_backtrace ставить, чтобы он ловил мне то, что мне надо?
#NIDNQK/2XK / @komar --> #NIDNQK/66A / 4324 дня назад
@muromec я тебя щас выебу нахуй
#NIDNQK/90Q / @krkm --> #NIDNQK/JXM / 4324 дня назад
@polecat > но второй ещё как-то неформально можно натянуть на хачкель. можно, но нахуйя. там даже continuations вполне себе делаются на лямбдочках, а CallCC это обычная функция.
#NIDNQK/5LS / @ninesigns --> #NIDNQK/4JY / 4324 дня назад
@polecat походу у них там пхп-мирок с чем-то уровня дебага через var_dump
#NIDNQK/89I / @krkm --> #NIDNQK/8KP / 4324 дня назад
БЛЯ ОПЯТЬ ВЕСЬ ТОП В КОМАРЕ ОТЪЕБИТЕСЬ ОТ МЕНЯ УЕБКИ
#NIDNQK/180 / @komar / 4324 дня назад
@polecat А между прочим так и есть.
#NIDNQK/JQ1 / @komar --> #NIDNQK/3M1 / 4324 дня назад
@komar "@komar — это новый @238328" — The New Yorker
#NIDNQK/V2Z / @krkm --> #NIDNQK/180 / 4324 дня назад
@komar если в языке нет многотредовости, то она не нужна
#NIDNQK/WQ2 / @ninesigns --> #NIDNQK/JQ1 / 4324 дня назад
@polecat нахуй ты мне про пхп рассказываешь?
#NIDNQK/RFH / @krkm --> #NIDNQK/3M1 / 4324 дня назад
@komar хули ты там неправ в интернете? знаешь что в моем дворе за такое делают?
#NIDNQK/3LV / @krkm --> #NIDNQK/JQ1 / 4324 дня назад
@4da А то!
#NIDNQK/X62 / @komar --> #NIDNQK/WQ2 / 4324 дня назад
@4da лек
#NIDNQK/SXQ / @krkm --> #NIDNQK/WQ2 / 4324 дня назад
@polecat чо за лох
#NIDNQK/6OU / @krkm --> #NIDNQK/1QT / 4324 дня назад
@polecat да // нет // дохуя но ее тяжело эксплойтить и это обычно значит что ты ставишь GPU раком
#NIDNQK/RKR / @ninesigns --> #NIDNQK/MO6 / 4324 дня назад
@polecat нео-аутист.
#NIDNQK/DYD / @ninesigns --> #NIDNQK/0BD / 4324 дня назад
@krkm пруф или "За @komar-ом стоят такие серьёзные люди как @laila" - lenta.ru
#NIDNQK/39E / @mugiseyebrows --> #NIDNQK/V2Z / 4324 дня назад
@mugiseyebrows волчья пизда же
#NIDNQK/CWS / @krkm --> #NIDNQK/39E / 4324 дня назад
@krkm што чё
#NIDNQK/4R9 / @mugiseyebrows --> #NIDNQK/CWS / 4324 дня назад
@mugiseyebrows лень палить ньюфэгу //комар поебался
#NIDNQK/2BR / @krkm --> #NIDNQK/4R9 / 4324 дня назад
@polecat сходил в горы
#NIDNQK/J12 / @krkm --> #NIDNQK/HGN / 4324 дня назад
@krkm На самом деле похуй кто у вас тут с кем ебётся (никто кроме клавы и быдла типа синока не ебётся на самом деле (на самом деле даже и они не)) если это не имеет комедийной подоплёки и не улучшит мою жизнь.
#NIDNQK/HHP / @mugiseyebrows --> #NIDNQK/J12 / 4324 дня назад
@mugiseyebrows > не имеет комедийной подоплеки Я тебе сожалею и завидую одновременно.
#NIDNQK/2Q4 / @komar --> #NIDNQK/HHP / 4324 дня назад
@komar get_backtrace ставить в обработчик исключения, который with .., относящийся к try. Но lwt это же манатка, и ошибки там -- не то же самое, что простой брошенный exn. Поэтому посмотри http://ocsigen.org/lwt/manual/ по слову "backtrace", там два абзаца.
#NIDNQK/85Q / @gds --> #NIDNQK/2XK / 4324 дня назад
@gds > it is possible to get them when using the syntax extension (((
#NIDNQK/IHZ / @komar --> #NIDNQK/85Q / 4324 дня назад
@komar это не больно. ну или логи пиши, ими отлаживать всяко пиздаче.
#NIDNQK/3MC / @gds --> #NIDNQK/IHZ / 4324 дня назад
@gds Что «логи пиши»?
#NIDNQK/JC6 / @komar --> #NIDNQK/3MC / 4324 дня назад
@komar пиши в лог вещи, показывающие ход выполнения и данные/аргументы там, где это интересно. log "running darcs with args %s..." args; Lwt_process.run ...; и по записанному в лог будет понятно, как работал код и какие были данные, когда оно упало с исключением. Кроме того, можно соорудить бектрейсы так: http://paste.in.ua/9676/ (заметь, там fmt для гибкасти). Конечно, call в нужных местах вызывать, там, где осмысленно (как и в случае логов, не каждый чих логировать стоит).
#NIDNQK/VQG / @gds --> #NIDNQK/JC6 / 4324 дня назад
@gds Это хорошо, рили, но как оно, блять, поможет мне понять, откуда высралось Lazy.Undefined? У меня lazy по всему коду.
#NIDNQK/19L / @komar --> #NIDNQK/VQG / 4324 дня назад
@komar 1. нехуй lazy по всему коду иметь, 2. https://bitbucket.org/gds/ocaml-lazy-labelled/src и лови Cycle of label list с твоим цыклом в аргументе.
#NIDNQK/93N / @gds --> #NIDNQK/19L / 4324 дня назад
@gds > 1. нехуй lazy по всему коду иметь Нахуй иди, например. Что еще мне не иметь, что возвращает одинаковые исключения? List.find?
#NIDNQK/L4W / @komar --> #NIDNQK/93N / 4324 дня назад
@komar не пойду лол. Причом тут одинаковые исключения. У тебя цыклы ленивых значений, undefined только из-за этого. Значит ты накосячил в логике. Не было бы лентяйки везде -- не было бы таких ошибок. Было бы меньше лентяйки -- было бы гораздо меньше таких ошибок. Канпелятор умеет предотвращать такие ошибки, если нет lazy и подобных выебонов контрол флова (как -- через порядок линковки и вызов только уже определённых функций). Будь попрощ вощемта.
#NIDNQK/HEF / @gds --> #NIDNQK/L4W / 4324 дня назад
@gds Дык я не знаю, это я обосрался или lwt обосралось. Оказалось второе. Был бы бектрейс — увидел бы. Наверное.
#NIDNQK/F8J / @komar --> #NIDNQK/HEF / 4324 дня назад
@komar во ты даёшь, ту шнягу с таймаутом уже давно стоит принять и простить.
#NIDNQK/J0E / @gds --> #NIDNQK/F8J / 4324 дня назад
@gds Понял и простил, но меня ошибки такого типа уже просто доебали, я не могу их дебажить. Одна ошибка охуительнее другой просто. Про lazy, про какую-то хуйню, Not_found. Че оно возвращает вообще? Исключение, блять, вызвано, тред отменился. Чего, блять? Про что эксепшон? Вообще охуеть.
#NIDNQK/1MZ / @komar --> #NIDNQK/J0E / 4324 дня назад
@komar lazy -- я показал, как разбирать баги с ним. Not_found -- используй функции, возвращающие опшон и на None реагируй явным образом, это не сложно, но диагностику добавляет просто ппц.
#NIDNQK/8JI / @gds --> #NIDNQK/1MZ / 4324 дня назад
@gds Это использование лишних операций взамен дрочки стека. Я не хочу каждый раз отделять None от Some, если я уверен, что эта функция здесь никогда Not_found не вернет.
#NIDNQK/HGH / @komar --> #NIDNQK/8JI / 4324 дня назад
@komar но оказывается, что возвращает, иначе откуда Not_found у тебя возникает? Ну бери тогда let list_find_diagn place pred lst = try List.find pred lst with Not_found -> failwith ("List.find: Not_found at " ^ place).
#NIDNQK/EWH / @gds --> #NIDNQK/HGH / 4324 дня назад
@komar Если рантайм поддерживает бэктрейсы -- значит по идее должен и при ловле эксепшнов их поддерживать. Хотя, конечно, посмотрим как в хаскеле сделают. Сейчас те эксепшны которые по ключу -xc логируются -- логируются как раз всегда (что немножечко даже ебёт).
#NIDNQK/CM4 / @kb --> #NIDNQK/IWB / 4323 дня назад
@krkm О, вот я об этом, наверное.
#NIDNQK/KQU / @kb --> #NIDNQK/BZU / 4323 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.