![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
Я думал так:
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в тот блок, который от except до .. end управление будет передано в том случае, если возникло исключение. Там его можно обработать. а else относиться к on e:exception (вы можете обработать определённые исключения (подробнее смотри хелп,F1)
а если исключение не попало в эту обработку, то выполнится блок в else |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
спасибо, я так и думал. Просто не было шанса проверить - всегда Exception пишу.
А как сделать так, чтобы никогда ошибка не вылетала? Слышал что можножно чего-нить сделать с Application.OnException. Это правда? Или достаточно написать {-I}? |
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
![]()
если ошибка в между try и except то вылетать не че не будет
если тебе не надо не как обрабатывать ошибку то можешь написать так try //код.. except end; |
![]() |
![]() |
![]() |
#5 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
Возможно ТС лучше тогда использовать блок try ... finally. Будет, так сказать, тихая обработка ошибки.
![]()
Будь проще и люди к тебе потянутся
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
2spamer, там никак нельзя определить когда была ошибки (ну можно, только немного по-кривому)
З.ы. я всего-лишь спрашивал, как работает else |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
это не тихая обработка это ГАРАНТИРОВАННОЕ выполнение кода в блоке finally end; и возобновление exception если оно было применяется для освобождения ресурсов и восстановления нормальногго состояноия программы. try l:=TStringList.Create; try l.LoadFromfile(...); l.strings[11]:='ghhhj'; // здесь может быть exception (list index bound) l.savetofile(...); finally l.Free; ..мы гарантируем что объект l(TStringList) будет уничтожен end; except ////но информация об exception будет распространяться // и мы попадем суда end;
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.03.2010
Сообщений: 88
|
![]()
Пробывал.
К примеру try Connection.Connected:=true; except ShowMessage('Неверная база данных!'); end; Если к примеру коннектиться по неверной коннект строке, то на сообщение не попадает. Выводит другое сообщение, техническое. А хочется "Неверная база данных!" Как быть? |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
AK BULLETS, а вы уверены что компонент ваш бросает исключение?
(и всегда пробуйте вне Делфи(или отключайте остановку на исключениях)) может там есть событие OnError Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
а эта тема есть в списке похожих внизу страницы http://programmersforum.ru/showthread.php?t=29048
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка Unexpected end of file | nemq | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 02.01.2010 05:55 |
try.. except.. end; | mosq | Общие вопросы Delphi | 3 | 30.09.2009 18:49 |
Проблема TRY ... EXCEPT ... END | chandrasecar | Общие вопросы Delphi | 4 | 05.11.2008 01:17 |
expected END but : found | qqanton | Помощь студентам | 2 | 31.10.2008 17:45 |