Сообщение Re[10]: Какие у исключений проблемы? от 07.11.2014 2:04
Изменено 07.11.2014 6:52 jazzer
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, uncommon, Вы писали:
V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?
U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.
Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только что, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.
V>Здравствуйте, uncommon, Вы писали:
V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?
U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.
Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только что, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.
Re[10]: Какие у исключений проблемы?
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, uncommon, Вы писали:
V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?
U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.
Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только то, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.
V>Здравствуйте, uncommon, Вы писали:
V>>>непонятно только, как исключения в этом случае будут быстрее кодов ошибок?
U>>Коды ошибок всегда проверять нужно, произошла ошибка или нет. А исключения задействуются, только когда произошла ошибка.
V>Ну это не совсем так, при входе в try блок ведь чтото должно делаться, не так ли? Единственный вопрос, быстрее ли оно обычного условия в случае проверки кода возврата.
Нет, ничего не надо делать, это обычный scope с толпой деструкторов в конце. И исключение — это по сути табличное goto куда-то в середину этой пачки деструкторов, в зависимости от того, в какой строчке вылетело исключение (чтоб убить только то, что успело создаться к этому моменту). И место goto вычисляется только при размотке стека в случае исключения.