В C++ исключения принято считать бесплатными, пока дело не доходит до throw. Но один бросок через 128 кадров стека может обойтись в 26 микросекунд, а отсутствие noexcept — заставить std::vector копировать объекты вместо перемещения. Разбираемся на замерах и примерах кода, откуда берутся эти накладные расходы, как на них влияет многопоточность и когда исключения становятся проблемой для производительности. Разобраться в исключениях
Всем привет. Продолжаем исследовать новые возможности C# 7. Уже были рассмотрены такие темы как: сопоставление с образцом, локальные функции, кортежи. Сегодня поговорим про Throw. В C# throw всегда был оператором. Поскольку throw — это оператор, а не выражение, существуют конструкции в C#, в
Изучая производительность методов в различных коллекциях, я наткнулся на интересный факт: там, где нужно выбросить Exception, программисты дёргают метод в статическом классе, в котором и происходит throw. Поначалу я думал, что это просто удобно - иметь все ошибки в одном месте и там следить за их единообразием. Это да, это действительно удобно. Но есть нюанс... Читать далее
Помните ли вы о существовании goto?Все его ненавидят, не исключая того, что найдётся пара случаев, когда он действительно упростит жизнь. Например, выход и множества вложенных циклов,. Оставим за скобками то, почему вообще это произошло.Но почему-то я не встречал никакого негатива насчёт throw. А ведь это точно такая же фигня, если даже не хуже. Читать далее