Код какого типа считается безопасным для исключений?

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

Отсюда: https://codereview.stackexchange.com/a/9759/11619

Вы используете пары блокировки/разблокировки для мьютекса. Это не безопасно для исключений. Поэтому я бы создал объект, который будет блокировать в конструкторе и разблокируйте в деструкторе, затем используйте это, чтобы заблокировать ваши мьютексы. Этот сделает ваш код более безопасным для исключений.

class MutexLocker
{
    pthread_mutex_t&  mutex;
    MutextLocker(pthread_mutex_t& mutex)
        : mutex(mutex)
    {
        pthread_mutex_lock(&mutex);
    }
    ~MutexLocker()
    {
        pthread_mutex_unlock(&mutex);
    }
};

Каким образом код, показанный выше, безопасен? Я не вижу там никакой обработки исключений.

Или код, безопасный для исключений, означает, что мы можем «добавить» обработку исключений? Итак, показанный выше код можно сделать безопасным для исключений, добавив обработку исключений, но сейчас это не так?

5
задан Community 13 April 2017 в 12:40
поделиться