![][1]
В мире победили языки высокого уровня и в мирах руби-питон-js разработчиков остается только разглагольствовать, что в плюсах не стоит использовать то или иное. Например, исключения, потому что они медленные и генерируют много лишнего кода. Стоило спросить "и какой же код он генерирует", как в ответ получил мямленье и мычание. А и правда — как же они работают? Ну что ж, компилируем в g++ с флагом -S, смотрим что получилось. Поверхностно разобраться не сложно, однако то, что остались недопонимания — не давали мне спать. К счастью, готовая статья нашлась. На хабре есть несколько статей, [подробных][2] и [не очень][3] (при этом все равно хороших), посвященных тому, как работают exceptions в C++. Однако нет ни одной по-настоящему глубокой, поэтому я решил восполнить этот пробел, благо есть подходящий материал. Кому интересно как работают исключения в C++ на примере gcc — запаситесь pocket-ом или evernot, свободным временем и добро пожаловать под кат. [Читать дальше →][4]
[1]:
https://habrastorage.org/files/bae/cb7/772/baecb77727fa49619830c84649d3ab3e.jpg
[2]:
https://habrahabr.ru/post/208006/
[3]:
https://habrahabr.ru/post/119016/
[4]:
https://habrahabr.ru/post/279111/#habracut