ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1049262 Топик полностью
RxTx (03.11.2020 23:34, просмотров: 260) ответил Kabdim на Исключения тормозят + прошивки как правило то место где все исключительные ситуации должны быть обработаны сознательно. По крайней мере у меня это так. Поэтому для меня bool, Result<>, getLastError, (*onError) - каждая в своих ситуациях лучше исключения.
Исключения тормозят только в том случае если пытаться (по непониманию) их использовать как некий стандартный механизм-замену возвращаемых значений. При выбросе исключения происходит stack unwinding, возврат указателя стека и это делается в цикле, стек вызовов интерпретируется как список (list, примерно). Поэтому это будет разумеется не так быстро как возврат значения, но сейчас тоже не так фатально. Жуть о очень медленных исключениях идет с эпохи примерно 96..98 годов, 

когда

системные

исключения Windows (тогда еще 95 или 98) при которых происходит переключение контекста были у микрософта скрещены с C++ исключениями. Сейчас кстати в 10ке и может быть даже еще в 7ке (но по-моему все-таки в 10ке) мелкомягкие даже при возникновении системного исключения не переключают контекст на ядро и они стали гораздо быстрее. Но это я увлекся. C++ исключения надо использовать только как очень редко возникающую ситуацию, а не кидать их каждый раз по каждому случаю. В этом случае сам факт встраивания механизма исключений в код не навешивает абсолютно никакой дополнительной платы. Как там у страуструпа "вы не платите за то, чем не пользуетесь".

Спасибо, князь. Вы настоящий дворянин. И программист.