Pull to refresh
2
0
Send message

Покажите, пожалуйста, где это написано, и почему нельзя просто оборвать соединение?

Кто сказал, что речь о библиотеке?

Пожалуйста, не нужно рисовать подобные диаграммы. Ничего не понятно. Если хотите показать структуру кода, используйте всем понятный UML.

Я не понял, что вы хотели сказать фразой


бросать исключение надо в ожидании, что его никто не ловит, то есть пусть падает, все равно уже «дальше жить незачем».

По-вашему, если в этом конструкторе произдёт ошибка, то исключение бросать не нужно что ли? Ерунда какая-то.

Исключения, которые никто не ловит, это единственный способ аварийно завершить программу, написанную на C++ (а не на C). Но я еще раз повторю, речь шла не об этом.

Ага, как же. terminate, exit, return -1 из main в конце концов. А о чём тогда?


Конкретно. Как будет закрыто TCP-соединение, если оно существовало в момент заверешения? Так оно должно закрываться? Как будет завершена сессия TLS поверх этого соединения? Так она должна завершаться? Что станет со встроенной базой данных на sqlite? Что сделается с криптоключами, созданными программой? Чем закончится асинхронная запись в файл? Даже попросту что произойдет с иконкой программы в трее?

Почаще задавайте себе такие вопросы. TCP-соединение отвалится по таймауту, соответственно, и tls сессия. С sqlite все будет отлично. Там транзакционноссть гарантирует целостность данных. Про ключи не понял. С иконкой, действительно, беда, но это в первую очередь демонстрирует кривость windows.


Стоит уточнить, что я не утверждаю, что исключения не нужны, что terminate можно использовать где угодно, и, конечно, что ресурсы не нужно освобождать перед завершением работы программы. Я хочу скзать, что в случаях, когда ошибку обработать невозможно, к примеру при инициализации глобальных объектов, нужно вызывать terminate, а не бросать какие-то исключения.

Не понимаю, чего вы от меня добиться хотите.

Хочу, что б вы признали, что исключения, которые никто не ловит, бессмысленны.


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

Может вы перестанете сыпать эпитетами и скажете, наконец, что конкретно не так с отсутсвием освобождения ресурсов при завершении программы?

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

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

Мы говорим про "обычный рабочий момент" или про "дальше жить незачем"?


От того, что некая клетка организма умерла, вовсе не следует, что и весь организм должен за ней последовать. Но клетка для себя — умерла.

Неуместное сравнение.

Там нет "если". Да и странное предложение у вас получается. Что тут ожидать? Ясно что упадёт, если не поймают. Вот исходная фраза понятна, но я ней не согласен. Бросать надо только в надежде, что кто то поймает и обработает. Если ситуацию обработать невозможно, нет смысла и бросать исключение.

Да, буду говорить если падать, то давайте оставим открытые сокеты, висячие коннекты, залоченные файлы, кучу мусора в папке temp. Что в этом плохого? Система всё почистит. Это в любом случае возможный исход работы программы. Представьте что будет если внезапно отключить питание.


Раскрутка стека нужна, только если программа будет продолжать работать. Если падаем, то раскручивать смысла нет.


Что такое "второй круг"?


Вы сказали исключение никто не ловит, а теперь у вас уже какие то логи.

Если "пусть падает", то юзайте сразу terminate. Зачем в таком случае исключение бросать?

-j передается в sub-make автоматически

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

То что вы отказались от такой работы вряд ли помешало заказчику. Итоговый результат: аморальная работа выполнена, деньги отдали кому то другому. Если вы не помешали выполнить эту работу, то не имеет значения выполнили вы её или отказались.

30 строчек, конечно, фигня, но вот создание несовместимой jvm это совсем не фигня.

jsmn быстр, потому что это не парсер, а лексер. Он даже escape последовательности не преобразует.

Вас слова "формальный язык" ввели в заблуждение или что?

Я хотел сказать, что по производительности вовсе не одинаково. Лучше использовать лямбды.

С чего вы взяли? Нельзя просто так такими заявлениями бросаться — вам ведь могут поверить. Надо измерять.
Вот, Stephan T. Lavavej, с вами не согласен.

Information

Rating
Does not participate
Registered
Activity