Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите с TRegExpr


Автор: lamber 22.9.2010, 00:07
Проблема в следующем есть примероно следующий код 

Код

TRegExpr* expr = new TregExpr;
expr->Expression="некоторая регулярка";
expr->Exec(Data);


иногда данные в data попадают не всегда валидные, как правильно заключить этот код в исключение или/и есть еще какие-то методы обработки ошибок, чтобы приложение не падало при поступлении не валидных данных, либо ввода не валидного регулярного выражения.

Автор: ИванМ 22.9.2010, 00:10
lamber, что означают не валидные в вашем понимании?

Автор: lamber 22.9.2010, 10:42
Выражения составленые с ошибками в синтаксисе регулярок, приводящие к возбуждению(raise) исключительной ситуации. К примеру 
"TRegExpr(comp): Null Argument"
"TRegExpr(comp): Regexp Too Big"
"TRegExpr(comp): Invalid [] Range"

и так далее по списку, не знаю какой языковой конструкцией обрабатывать эти ситуаци, где-то видел но щас уже не упомню.

Автор: 586 22.9.2010, 10:58
Код
try {
    TRegExpr* expr = new TregExpr;
    expr->Expression="некоторая регулярка";
    expr->Exec(Data);
}
catch(...) {
}

Автор: lamber 22.9.2010, 13:53
Пробовал так но там видимо свой класс обработки исключений и данная конструкция ведет так же к крашу приложения.

Автор: mrbrooks 22.9.2010, 14:44
Цитата(lamber @  22.9.2010,  14:53 Найти цитируемый пост)
Пробовал так но там видимо свой класс обработки исключений и данная конструкция ведет так же к крашу приложения. 

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

Просто признайся, что просто запускаешь программу из среды.

Автор: lamber 22.9.2010, 19:58
mrbrooks меня раскусил так и есть =)))
ЗЫ
Поздпавления с 4000-м постом =)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)