i ConamitStrip.com / commitstrip :: Смешные комиксы (веб-комиксы с юмором и их переводы)

commitstrip Комиксы 
i
ConamitStrip.com,commitstrip,Смешные комиксы,веб-комиксы с юмором и их переводы
Подробнее
i ConamitStrip.com
commitstrip,Смешные комиксы,веб-комиксы с юмором и их переводы
Еще на тему
Развернуть
Любая пойманная ошибка должна быть залогирована
Чтобы пользователь понял что сервер недоступен, а не хуярил по кнопке не понимая почему ничего не происходит.
AshB AshB 11.11.201815:25 ответить ссылка 4.1
Понимать - дело разработчика, читающего отладочный лог или крешдамп. Нынешний пользователь в абсолютном большинстве случаев всё равно ничего не поймет, за исключением случаев, когда софт пишется для эксплуатации квалифицированными админами.
dadv dadv 11.11.201816:36 ответить ссылка -3.4
В языках с checked exceptions бывают ситуации, когда задекларированное исключение в принципе никогда не вылетит в определенном коде, но try-catch нужно поставить, чтобы не прокидывать его выше.
Пример - метод read() класса ArrayInputStream декларирует возможный IOException, так как он пронаследован. Но он его в принципе не может выкинуть.
Ловишь, логируешь, пакуешь в UncheckedIOException и передаёшь выше уже как unchecked. Если код хороший и никогда не вылетит, то подобный код не будет задействован и не будет заёбывать никого выше по стеку вызовов, а если всё-таки кто-то модифицирует что-то кривыми руками - программа всё ещё готова ловить, логировать и сигнализировать всеми способами об ошибке.
Костыль.
Вообще, программируя одновременно на жабе и скалке, я понял, что checked exceptions скорее зло, чем добро. В реальности обычно похер, что именно свалило твой поток, и мало что можно сделать, если исключение уже прилетело. И тип исключения в самом коде важен редко - не похуй ли, что залогировать?
Оно то так, только некоторые ситуации вполне можно разрулить.
hatlol hatlol 11.11.201814:10 ответить ссылка 16.0
Синхронизация доступа к общим данным из разных потоков? Забей хуй, это гемор! Все равно при демонстрации у тебя будет только один поток, а на проде полгода будут разбираться, успеешь уволиться.
Ты чудовище!
dadv dadv 11.11.201816:37 ответить ссылка 3.7
Не желаете ли немного парсинга xml регекспами, вынесенными в отдельную конфигурацию, которая в базе в виде таблицы-свалки по иерархическому шаблону property вместе с парой тысяч таких же пропертей из других мест приложения?
Кэп? Он будет при ошибке выводить пустое сообщение?
Можно не выводить ничего.
Код не работает, но и помалкивает.
Иди гадай, что с ним не так, если этот код писал не ты.
iNji iNji 11.11.201814:17 ответить ссылка 4.1
Если бросается исключение, и оно не обработано инструкцией try...catch, то программа скрашится. Нормой является поймать нужные типы исключений, произвести какую-то работу с ними, а затем либо кинуть выше, либо еще что-нибудь сделать, в зависимости от задачи. Обработка исключений и вывод сообщений об ошибки не связаны, это задача программиста. Поведение может быть разным - сообщение об ошибке, запись в лог, а может быть программа еще как-то это обработает. Если же оставить пустой try-catch, то ошибка перехватится, т.е. программа не упадет, но никак не будет обработана. Например, мы открываем файл, файл не найден, исключение, но оно тупо перехвачено пустым try-catch. Какое-то время спустя в другом месте программы будет предпринята попытка записи в этот файл, но он закрыт, и будет ошибка. И отыскать ее будет очень трудно, потому что причина в другом месте (ладно, пример с файлом довольно очевидный, тут легко).
Ну, не обязательно скрашится. На жабе при необработанном исключении крашится только поток, в котором оно вылетело, остальные потоки это не затрагивает. Даже если это был поток main, дочерние все продолжат работу на похуях, только если им при создании явно не выставили флаг автозавершения с парентом(это очень редко кто делает).
Не доставай дрочило, пока она сама не захочет, или хотя бы не заснет
Надо доставать стояло и её мнение будет маловажным.
nonnname nonnname 11.11.201814:29 ответить ссылка -5.4
Кроме ангела и демона есть еще дедлайн. От речей этого советника демон иногда забивается в угол и дрожит от разрывающего сознание на части ужаса.
Кто, по-твоему, создал дедлайн?
Человек
ligery ligery 11.11.201815:30 ответить ссылка 6.9
дэдлайн всё равно будет проёбан, потому что все пытаются подбивать реальность под планы, а не наоборот
а поддерживать придется
villy villy 11.11.201818:58 ответить ссылка 0.1
Но ведь некоторые задачи проще написать при помощи exception driven development

boolean isNumber(String s) {
try {
int n = Integer.parseInt(s);
return true;
} catch (Throwable ex) {
}
return false;
}
И что, кроме рожек на голове, мешает поставить return false внутри catch?
Cfyz Cfyz 11.11.201815:35 ответить ссылка 1.6
А зачем там второй return false?
dadv dadv 11.11.201816:39 ответить ссылка -0.5
Cfyz прав, return false можно перенести на одну строку вверх без изменения логики. Если поставить два, то там получится unreachable statement.
А компилятор-то знает, что это будет unreachable statement?
Вот что он точно знает, так это то, что если убрать return false из самого конца функции, то формально это будет функция с undefined return value.
dadv dadv 11.11.201817:00 ответить ссылка -0.1
Зависит от языка программирования. Java знает и undefined return value там нет.
В жабе undefined return value - это не ворнинг, а эррор, хрен ты это скомпилишь. Про анричбл код тебе матюкнется даже на что-то типа
if (1>2) then doSome();
Это я не говорю про идею(иде), которая умеет смотреть вглубь вызовов, и предупреждать, что условие всегда true, или же то, что в этом месте значение переменной всегда будет одинаковым(и предлагать заменить всю цепочку вызовов константой, или заинлайнить код).
Кстати, кроме самого уебанства подхода, этот метод потенциально может вернуть false для вполне валидного числа. Если внутри трайкетча вылетит OutOfMemory или StackOverflow.
Внезапно, иногда (очень иногда) это оказывается правильным решением. Например, когда само выбрасывание исключения является багом. Как ни удивительно, я с таким сталкивался на практике.
torbasow torbasow 11.11.201816:47 ответить ссылка 0.4
Кстати, да, было.
А с логгированием нужно быть осторожным, бо я сталкивался с ситуацией, когда логгинг всякой хуйни был бутылочным горлышком по производительности.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
ТАК, ЧТО ТАМ У НАС ТВОРИТСЯ В ЗАХВАТЫВАЮЩЕМ МИРЕ ВЕБ-КОМИКСОВ?..
£91	
^ С. У Д	
и у \	/1 /
ОЛИН ЧЕЛОВЕК
РОПСЕНШТИЛЬС/
Я, КАЖЕТСЯ, ПОЗНАЛ ТЩЕТУ БЫТИЯ.
ПИСТОЛЕТ В СЛИВНОМ _БАЧКЕ.
подробнее»

Смешные комиксы,веб-комиксы с юмором и их переводы ропсенштильс и шизнагсингерзуппе вебкомиксы

ТАК, ЧТО ТАМ У НАС ТВОРИТСЯ В ЗАХВАТЫВАЮЩЕМ МИРЕ ВЕБ-КОМИКСОВ?.. £91 ^ С. У Д и у \ /1 / ОЛИН ЧЕЛОВЕК РОПСЕНШТИЛЬС/ Я, КАЖЕТСЯ, ПОЗНАЛ ТЩЕТУ БЫТИЯ. ПИСТОЛЕТ В СЛИВНОМ _БАЧКЕ.
vk.com/commitstrip
GomwitStrip.cow vk.com/mixpixin
Яви нам свой дух. пролей на нас свет, помоги нам найти логи сессии Докера, так как мы их проебали...
CommitStrip.com
подробнее»

commitstrip Смешные комиксы,веб-комиксы с юмором и их переводы

vk.com/mixpixin Яви нам свой дух. пролей на нас свет, помоги нам найти логи сессии Докера, так как мы их проебали... CommitStrip.com
В общем, я переустановил вам \Vindows. Установил 26 драйверов пакет программ «Премиум» и антивирус на 3 года. _____ V
Что??? Пятьдесят тысяч??? По пятьсот за драйвер? Так дорого? И какое еще сохранение данных за тридцать тысяч? В сё же и так было на месте!
Спасибо! Не думал что у меня такая была
подробнее»

commitstrip Смешные комиксы,веб-комиксы с юмором и их переводы it-юмор

В общем, я переустановил вам \Vindows. Установил 26 драйверов пакет программ «Премиум» и антивирус на 3 года. _____ V Что??? Пятьдесят тысяч??? По пятьсот за драйвер? Так дорого? И какое еще сохранение данных за тридцать тысяч? В сё же и так было на месте! Спасибо! Не думал что у меня такая была