Исключения, которые никто не ловит, это единственный способ аварийно завершить программу, написанную на C++ (а не на C). Но я еще раз повторю, речь шла не об этом.
Ага, как же. terminate, exit, return -1 из main в конце концов. А о чём тогда?
Конкретно. Как будет закрыто TCP-соединение, если оно существовало в момент заверешения? Так оно должно закрываться? Как будет завершена сессия TLS поверх этого соединения? Так она должна завершаться? Что станет со встроенной базой данных на sqlite? Что сделается с криптоключами, созданными программой? Чем закончится асинхронная запись в файл? Даже попросту что произойдет с иконкой программы в трее?
Почаще задавайте себе такие вопросы. TCP-соединение отвалится по таймауту, соответственно, и tls сессия. С sqlite все будет отлично. Там транзакционноссть гарантирует целостность данных. Про ключи не понял. С иконкой, действительно, беда, но это в первую очередь демонстрирует кривость windows.
Стоит уточнить, что я не утверждаю, что исключения не нужны, что terminate можно использовать где угодно, и, конечно, что ресурсы не нужно освобождать перед завершением работы программы. Я хочу скзать, что в случаях, когда ошибку обработать невозможно, к примеру при инициализации глобальных объектов, нужно вызывать terminate, а не бросать какие-то исключения.
Вот в том и дело, что обычный рабочий момент приравнивается к внезапному отключению питания. Давайте будем взрывать системный блок, если не нашли своего раздела в реестре?
то, что некий модуль считает фатальной ошибкой, на высшем уровне иерархии может таковой не являться (например, есть другой модуль, решающий ту же задачу иначе)
Мы говорим про "обычный рабочий момент" или про "дальше жить незачем"?
От того, что некая клетка организма умерла, вовсе не следует, что и весь организм должен за ней последовать. Но клетка для себя — умерла.
Там нет "если". Да и странное предложение у вас получается. Что тут ожидать? Ясно что упадёт, если не поймают. Вот исходная фраза понятна, но я ней не согласен. Бросать надо только в надежде, что кто то поймает и обработает. Если ситуацию обработать невозможно, нет смысла и бросать исключение.
Да, буду говорить если падать, то давайте оставим открытые сокеты, висячие коннекты, залоченные файлы, кучу мусора в папке temp. Что в этом плохого? Система всё почистит. Это в любом случае возможный исход работы программы. Представьте что будет если внезапно отключить питание.
Раскрутка стека нужна, только если программа будет продолжать работать. Если падаем, то раскручивать смысла нет.
Что такое "второй круг"?
Вы сказали исключение никто не ловит, а теперь у вас уже какие то логи.
Польза от этого сомнительная. Получается общее количество потоков, используемое всеми запущенными makeами, будет отличаться от указанного. Это может ощутимо сказаться на времени сборки и используемой памяти.
То что вы отказались от такой работы вряд ли помешало заказчику. Итоговый результат: аморальная работа выполнена, деньги отдали кому то другому. Если вы не помешали выполнить эту работу, то не имеет значения выполнили вы её или отказались.
Покажите, пожалуйста, где это написано, и почему нельзя просто оборвать соединение?
Кто сказал, что речь о библиотеке?
Пожалуйста, не нужно рисовать подобные диаграммы. Ничего не понятно. Если хотите показать структуру кода, используйте всем понятный UML.
Да
Я не понял, что вы хотели сказать фразой
По-вашему, если в этом конструкторе произдёт ошибка, то исключение бросать не нужно что ли? Ерунда какая-то.
Ага, как же. terminate, exit, return -1 из main в конце концов. А о чём тогда?
Почаще задавайте себе такие вопросы. TCP-соединение отвалится по таймауту, соответственно, и tls сессия. С sqlite все будет отлично. Там транзакционноссть гарантирует целостность данных. Про ключи не понял. С иконкой, действительно, беда, но это в первую очередь демонстрирует кривость windows.
Стоит уточнить, что я не утверждаю, что исключения не нужны, что terminate можно использовать где угодно, и, конечно, что ресурсы не нужно освобождать перед завершением работы программы. Я хочу скзать, что в случаях, когда ошибку обработать невозможно, к примеру при инициализации глобальных объектов, нужно вызывать terminate, а не бросать какие-то исключения.
Хочу, что б вы признали, что исключения, которые никто не ловит, бессмысленны.
Может вы перестанете сыпать эпитетами и скажете, наконец, что конкретно не так с отсутсвием освобождения ресурсов при завершении программы?
Мы говорим про "обычный рабочий момент" или про "дальше жить незачем"?
Неуместное сравнение.
Там нет "если". Да и странное предложение у вас получается. Что тут ожидать? Ясно что упадёт, если не поймают. Вот исходная фраза понятна, но я ней не согласен. Бросать надо только в надежде, что кто то поймает и обработает. Если ситуацию обработать невозможно, нет смысла и бросать исключение.
Да, буду говорить если падать, то давайте оставим открытые сокеты, висячие коннекты, залоченные файлы, кучу мусора в папке temp. Что в этом плохого? Система всё почистит. Это в любом случае возможный исход работы программы. Представьте что будет если внезапно отключить питание.
Раскрутка стека нужна, только если программа будет продолжать работать. Если падаем, то раскручивать смысла нет.
Что такое "второй круг"?
Вы сказали исключение никто не ловит, а теперь у вас уже какие то логи.
Если "пусть падает", то юзайте сразу terminate. Зачем в таком случае исключение бросать?
Польза от этого сомнительная. Получается общее количество потоков, используемое всеми запущенными makeами, будет отличаться от указанного. Это может ощутимо сказаться на времени сборки и используемой памяти.
Эскобар.jpg recursive make considered harmful.
Нет, не нужно.
То что вы отказались от такой работы вряд ли помешало заказчику. Итоговый результат: аморальная работа выполнена, деньги отдали кому то другому. Если вы не помешали выполнить эту работу, то не имеет значения выполнили вы её или отказались.
30 строчек, конечно, фигня, но вот создание несовместимой jvm это совсем не фигня.
jsmn быстр, потому что это не парсер, а лексер. Он даже escape последовательности не преобразует.
Вас слова "формальный язык" ввели в заблуждение или что?
Я хотел сказать, что по производительности вовсе не одинаково. Лучше использовать лямбды.
С чего вы взяли? Нельзя просто так такими заявлениями бросаться — вам ведь могут поверить. Надо измерять.
Вот, Stephan T. Lavavej, с вами не согласен.