Информация об изменениях

Сообщение Re[10]: Какие у исключений проблемы? от 07.11.2014 2:04

Изменено 07.11.2014 6:52 jazzer

Здравствуйте, Vain, Вы писали:

V>Здравствуйте, uncommon, Вы писали:


V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?

U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.

Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только что, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.
Re[10]: Какие у исключений проблемы?
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, uncommon, Вы писали:


V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?

U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.

Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только то, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.