LINUX.ORG.RU

Расскажите о философии их использования

 ,


4

5

Уже много дней пишу на C++, но так сложилось, что в проектах, в которых я участвую, исключения не используются.

На днях задумался о том, чтобы протестировать их в одном из своих собственных проектов. Перед этим хотелось бы почитать какие-нибудь умные буквы о том, почему исключения - это хорошо.

Приветствуются ссылки на статьи на русском и английском языках.

Так же можете оставлять свое собственное мнение о практике и философии использования исключений в с++ коде.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от swwwfactory

но какие-то ___call/jmp будут присутствовать как вызовы деструкторов

Нет, на этапе компиляции нельзя определить какие деструкторы нужно будет вызывать при исключении. Все это определяется в рантайме по ходу раскрутки стека, поэтому так тормозит. Подробнее принцип можно посмотреть по ссылкам, которые дал tailgunner чуть выше.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Неужели нельзя как-то пооптимальнее сделать. ИМХО, под оффтопиком они шустрее(может из-за того, что поверх оффтопиковского SEH реализованы?).

anonymous
()
Ответ на: комментарий от no-such-file

но какие-то ___call/jmp будут присутствовать как вызовы деструкторов

Нет, на этапе компиляции нельзя определить какие деструкторы нужно будет вызывать при исключении. Все это определяется в рантайме по ходу раскрутки стека, поэтому так тормозит. Подробнее принцип можно посмотреть по ссылкам, которые дал tailgunner чуть выше.

спасибо - занятно. Т.е. по сути статичных колов и прыжков как таковых нет - там один динамизм со стеком и постоянные вычисления в рантайме. Получается как некая виртуальная машина по сути...

swwwfactory ★★
()
Ответ на: комментарий от anonymous

ИМХО, под оффтопиком они шустрее(может из-за того, что поверх оффтопиковского SEH реализованы?).

Не знаю на счет шустрее, но как интересно SEH поможет при раскрутке стека в вашей программе?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Я кстати, не понимаю, почему было не сделать исключения в виде дополнительного параметра функций, деструкторы вызывать через трюк с goto под капотом и пр. ИМХО, было бы гораздо быстрее того, что сейчас...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.