Dag |
Отправлено: 03.05.2004, 18:10 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
А проблема такая: у меня есть текст исключения (E->Message.c_str()). Мне нужно, чтобы вместо него выдавалось русский текст об ошибке. Как это сделать? Текст исключения на US: DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_Schet_Deliver'. The conflict occurred in database 'CD', table 'Schet', column 'Inn_post'. Само исключение я отловил и с чем оно связано знаю.
Пытался делать так:
CODE | if (E->Message.c_str() == "DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_Schet_Deliver'. The conflict occurred in database 'CD', table 'Schet', column 'Inn_post'") {ShowMessage("Русское сообщение")} |
но ничего не вышло. Как надо сделать правильно?
Отредактировано Dag — 03/05/2004, 19:13 |
|
Doga |
Отправлено: 03.05.2004, 19:13 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Может обрабатывать не текст исключения, а его тип? Т.е. по имени класса исключения...
|
|
Dag |
Отправлено: 03.05.2004, 20:05 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Это как? |
|
xTrim |
Отправлено: 06.05.2004, 17:28 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
CODE |
try
{
Table1->First();
}
catch(EDatabaseError &e)
{
ShowMessage("Таблица-то закрыта!");
}
|
|
|
olegenty |
Отправлено: 07.05.2004, 07:05 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
не, там не так, там надо отлавливать РЕАЛЬНЫЙ класс ошибки и работать с ним:
if (EIBError = dynamic_cast(e))
{
}
потому что классы реальных ошибок, как правило, порождены от Exception. но в них больше инфы...
|
|