Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Нужен ли try finally в C++?
Да (почемо его досих пор нет в стандарте?) 2 100.00%
Нет (ты нуб, не так надо делать) 0 0%
Я его использую (напр в CBuilder или в MSVC) 0 0%
Незнаю 0 0%
Голосовавшие: 2. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2016, 03:40   #1
ADR-007
Новичок
Джуниор
 
Регистрация: 14.09.2013
Сообщений: 2
По умолчанию try finally

Как жыть без try finally? Или у GNU C++ есть способ его добавить?

Как, например, написать такой код без finally?
Код:
class SampleLoader : public QObject
{
    Q_OBJECT
public:
    explicit SampleLoader(QObject *parent = 0);
    void load(QString sampleParameter);
 
signals:
    void workBeginEvent(int stepsCount);
    void workEvent(int step);
    void workEndEvent(bool sampleResult);
 
public slots:
};
 
void SampleLoader::load(QString sampleParameter)
{
    int count = 10;
    bool someResult = false;
    emit workBeginEvent(count);
    try 
    {
        for(int i = 0; i < count; i++)
        {
            QTest::qSleep(100); // hard work
            emit workEvent(i);
        }
        someResult = true;
    }
    finally
    {
        emit workEndEvent(someResult);
    }
}

Последний раз редактировалось ADR-007; 17.02.2016 в 04:43.
ADR-007 вне форума Ответить с цитированием
Старый 17.02.2016, 12:45   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Код:
//...
try{
//...
}catch(...){
//...
}
//...
Но SEH так не поймать.
Croessmah вне форума Ответить с цитированием
Старый 17.02.2016, 13:22   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

К SEH это отношения не имеет.
В С++ finally блок вызывается всегда при выходе из функции но это нестандартное от Мелкомягких.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
While и finally bilibian Общие вопросы Delphi 5 20.01.2015 11:46
Yeah... Ha Ha! Finally someone let me out of My cage 13th Фриланс 3 20.04.2012 00:20
Объясните плх для чего нужен блок try except finally и как им пользоваться) TwiX Общие вопросы Delphi 7 02.10.2009 12:27
Зачем нужен finally? ds.Dante Общие вопросы .NET 9 15.09.2009 12:09