Описание тега exception-safe

5 ответов

Исключительная безопасность - когда, как, почему?

Я просто начинающий программист, который, по крайней мере, пытается программировать больше, чем в лучшем случае. Я читал "Исключительный C++" Херба Саттера и трижды проходил главы, посвященные безопасности исключений. Однако, исключая приведенный им…
19 дек '10 в 11:51
4 ответа

Это хороший вариант использования std::auto_ptr<>?

Пожалуйста, предположим, у меня есть функция, которая принимает указатель в качестве параметра. Эта функция может генерировать исключение, так как она использует std::vector&lt;&gt;::push_back() управлять жизненным циклом этого указателя. Если я объ…
22 ноя '09 в 03:33
1 ответ

Сбой инициализации unique_ptr<>()?

Из документации std:: unique_ptr<> (), что может произойти при инициализации указателя, мне неясно. При выделении std::shared_ptr&lt;&gt;(), он выделяет буфер памяти для обработки счетчика ссылок. Так что я могу получить std::bad_alloc исключение. М…
06 ноя '16 в 05:47
2 ответа

Безопасное использование std::tr1::shared_ptr

Этот подход небезопасен? #include &lt;tr1/memory&gt; Foo * createFoo() { return new Foo(5); } int main() { std::tr1::shared_ptr&lt;Foo&gt; bar(create()); return 0; } Или это было бы предпочтительнее для createFoo вернуть shared_ptr&lt;Foo&gt; объект?
07 апр '11 в 20:32
2 ответа

Может ли в стеке быть безопасный метод исключения и возврата и удаления верхнего элемента с семантикой перемещения?

В ответе на вопрос о std::stack::pop() Я утверждал, что причина pop не возвращает значение по соображениям безопасности (что происходит, если конструктор копирования выдает). Konrad Rudolph отметил, что теперь с семантикой перемещения это уже не акт…
12 апр '10 в 06:58
3 ответа

Можно ли иметь реализацию члена для обмена броском?

Общая рекомендация при написании классов (с использованием идиомы копирования и обмена) заключается в предоставлении функции-члена без броска свопинга. ( Действующий C++, 3-е издание, пункт 25 и другие ресурсы) Однако что, если я не могу предоставит…
2 ответа

Исключительная безопасность / обработка с.Net HtmlTextWriter?

Я использую.Net HtmlTextWriter генерировать HTML. try { htw.RenderBeginTag( HtmlTextWriterTag.Span ); htw.Write(myObject.GenerateHtml()); htw.RenderEndTag( ); } catch (Exception e) { GenerateHtmlErrorMessage(htw); } В этом примере, если исключение о…
13 ноя '08 в 09:26
6 ответов

Является ли синхронизированное ключевое слово безопасным от исключений?

Возможный дубликат: Побочные эффекты бросания исключения внутри синхронизированного предложения? Мне интересно, если synchronized исключение безопасно? Скажем, в синхронизированном блоке происходит необработанное исключение, будет ли снята блокировк…
3 ответа

Как мне описать метод, который не имеет побочных эффектов, если во время выполнения выдается исключение?

Я просто не могу вспомнить терминологию, используемую для этого и других связанных свойств. РЕДАКТИРОВАТЬ - Может быть, такой концепции не существует, но я помню, как читал что-то в Effective C++ (или More Effective C++), где он выступал за использо…
12 ноя '08 в 10:14
1 ответ

Scope Guard Statement в C#

Идиома Resource Acquisition Is Initialization (RAII) и оператор try-finally составляют основу традиционных подходов к написанию безопасного программирования исключений. Мой вопрос: есть ли что-то вроде ScopeGuardStatement на C#?
2 ответа

Почему `myvector.push_back(autoPtr.release())` обеспечивает строгую гарантию безопасности исключений?

РЕДАКТИРОВАТЬ: я должен был упомянуть, я искал документацию для Boost's ptr_sequence_adapter и он утверждает, что их адаптер для template&lt; class U &gt; void push_back( ::std::auto_ptr&lt;U&gt; x ); эквивалентно делать vec.push_back(autoPtr.releas…
08 авг '10 в 00:27
7 ответов

Является ли Try/ Наконец безопасным для исключений?

Допустим, у вас есть кусок кода вроде: resource = allocateResource(); try { /* dangerous code here */ } finally { free(resource); } Я не имею в виду какой-либо конкретный язык, но я думаю, что Java, C# и C++ были бы хорошими примерами (если вы испол…
2 ответа

Пример исключения из гарантии безопасности правильный?

Я обсуждаю гарантии безопасности исключений и придумал пример, который, как мне кажется, дает строгую гарантию: template&lt;typename E, typename LT&gt; void strongSort(vector&lt;E*&gt; &amp;data, LT lt) // works on pointers { vector&lt;E*&gt; temp {…
07 авг '11 в 12:30
4 ответа

Безопасно ли push_back "динамически выделенный объект" для вектора?

Всякий раз, когда мне нужно добавить динамически размещенный объект в вектор, я делаю это следующим образом: class Foo { ... }; vector&lt;Foo*&gt; v; v.push_back(new Foo); // do stuff with Foo in v // delete all Foo in v Это просто сработало, и мног…
15 ноя '10 в 14:37
3 ответа

Стандартные библиотечные функции C, включенные в C++, создают исключение?

В приведенном ниже коде автор указывает, что new operator Вызов функции может вызвать исключение, так что эта реализация не является безопасной для исключения, поскольку состояние объекта уже изменено в первой строке. String &amp;String::operator =(…
6 ответов

Откуда вы знаете все исключения, которые может выдать метод

Есть ли способ получить некоторые детали относительно аспектов безопасности исключений стандартных классов Java? В основном работая с C++ и C#, я запутался со спецификациями исключений Java, поэтому мне нужно понять, как правильно работать с исключе…
1 ответ

Безопасное ведение журнала в Java

У меня (вероятно) странный вопрос о безопасном входе в систему в Java. Допустим, у меня есть этот код в Java: if (log.isDebugEnabled()) { log.debug(...expression...); } Существует ли передовая практика ведения журналатаким образом, чтобы любое исклю…
05 апр '23 в 15:02