Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по исключениям

33K
28 сентября 2009 года
Posix86749
54 / / 13.07.2009
Есть приложение по рабте с БД.
Пытаюсь вставить запись в бд. И что бы приложение не обваливалось из-за какой-нибудь фигни (например данные в поле не помещаются) сделал обработку исключения
Код:
while (условие)
{
 try
         {
          ADOQuery1->ExecSQL();
         }
        catch (...)
        {
        ShowMessage("Ошибка!");
        }
}

при выполнении кода появляется ошибка, исключение ее обрабатывает, выдатеся сообщение "Ошибка!", а выполнение программы останавливается. Разве программа не должна выполнятся дальше? или я чего то не допонля?
1.9K
28 сентября 2009 года
GreenRiver
451 / / 20.07.2008
Исключение в студию, код тоже... Чисто теоретически Вы правы, программа не должна упасть... а чисто практически она может упасть как результат текущего состояния программы, которая была оборвана в результате генерации исключения. По аналогии с ошибкой при выходе из функции.
51K
28 сентября 2009 года
Airhand
19 / / 14.09.2009
Цитата: Posix86749

при выполнении кода появляется ошибка, исключение ее обрабатывает, выдатеся сообщение "Ошибка!", а выполнение программы останавливается. Разве программа не должна выполнятся дальше? или я чего то не допонля?


Прога должна остоновиться и цикл while не поможет. Чего хочется получить в итоге ?

33K
28 сентября 2009 года
Posix86749
54 / / 13.07.2009
Цитата: Airhand
Прога должна остоновиться и цикл while не поможет. Чего хочется получить в итоге ?


Хочется что бы когда происходила ошибка вставки строки в таблицу, программа выполняла какие-то действия (например чего-нить писала в лог), пропускала косячную запись и дальше работала

51K
29 сентября 2009 года
Airhand
19 / / 14.09.2009
Цитата: Posix86749
Хочется что бы когда происходила ошибка вставки строки в таблицу, программа выполняла какие-то действия (например чего-нить писала в лог), пропускала косячную запись и дальше работала


Тогда просто try...catch(). В блоке catch описываеш то, что должна делать прога в случае ошибки: писать в лог и пытаться снова вставить запись в базу.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог