Форум: Форум C++Разное
Новые темы: 00
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Какое исключение генерируется при выходе за границу массива в списке (C++ Builder)?
 
 автор: Kostia89   (01.12.2007 в 05:27)   письмо автору
 
 

Здравствуйте!
Подскажте, плиз, какое исключение выбрасывает СБилдер, когда в List1->Strings[i] когда i>List1->Count ?

  Ответить  
 
 автор: cheops   (01.12.2007 в 06:45)   письмо автору
 
   для: Kostia89   (01.12.2007 в 05:27)
 

Должно быть что-то вроде EStringListError, в любом случае это исключение можно перехватить базовым исключением EListError.

PS Выполните выход за границу в отладочном режиме (в новом проекте) - вам Builder в сообщении об ошибке обязательно сообщит имя возникшего исключения.

  Ответить  
 
 автор: Kostia89   (01.12.2007 в 07:24)   письмо автору
 
   для: cheops   (01.12.2007 в 06:45)
 

Пасиб. Исключение я поймал (catch(...) ), только вот сперва вылезает сообщение от Билдера, а только потом мое. Как отключить сооьщение Билдера?

  Ответить  
 
 автор: cheops   (01.12.2007 в 08:58)   письмо автору
 
   для: Kostia89   (01.12.2007 в 07:24)
 

Не должно быть такого (вернее такое может быть, если в главном файле проекта пытаетесь обработать исключение, уже после того, как сработают обработчики Builder)... вы где исключение обрабатываете?

  Ответить  
 
 автор: Kostia89   (01.12.2007 в 09:00)   письмо автору
 
   для: cheops   (01.12.2007 в 08:58)
 

в главном файле... а где надо?

  Ответить  
 
 автор: cheops   (01.12.2007 в 09:19)   письмо автору
 
   для: Kostia89   (01.12.2007 в 09:00)
 

Главный файл - это точка входа - там обрабатываются необработанные исключения - лучше обрабатывать исключения более локально - в обработчиках, функциях - это не приводит к остановке программы... Если и обрабатываете исключение в главном файле помещайте свой контролируемый блок try ... catch внуть контролируемого блока, который там уже имеется.

  Ответить  
 
 автор: Фитч   (02.12.2007 в 05:28)   письмо автору
 
   для: cheops   (01.12.2007 в 09:19)
 

Сообщение от билдера не должно вылезать при запуске программы вне среды, т.е. если запустить ехе-шник, не запуская Билдера, то будет только одно исключение. Для отладки можно изменять опции билдера tools->Debugger Options->Language Exceptions флажки Stop on Delphi exceptions, Stop on C++ Exceptions.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования