![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
try ... except ... on
StriderMan © (2006-11-15 15:46:00)Доброго времени, мастера! Думал что хорошо знаю исключения, а встал в тупик.
try
// тут код может сгенерить ЛЮБОЙ exception
except
//если Exception типа EMyException то нужно поменять ему Message и сделать raise.
//Любое другое исключение надо просто сделать raise
end;
Сейчас сделал так:
try
//код
except
on E:Exception do
begin
if E is EMyException then
E.Message := 'МОЕ исключение';
raise;
end;
end;
но ИМХО как-то некрасиво. Хотелось бы что-то типа:
tryно такой код делфи не съедает
//код
except
on E: EMyException do
E.Message := 'МОЕ исключение';
raise;
end;
evvcom (2006-11-16 09:05:00) [1]> [6] novill © (15.11.06 16:02)
Согласен, это я так, на всякий случай :)
StriderMan (2006-11-15 16:04:00) [2]
> evvcom © (15.11.06 15:58) [4]
> novill © (15.11.06 16:02) [7]
всем спасибо :).
(ушол стыдливо перечитывать хелп)
novill (2006-11-15 16:02:00) [3]> там же еще else есть!
Угу, но тут он не нужен :)
novill (2006-11-15 16:02:00) [4]> [5] StriderMan © (15.11.06 16:00)
:) смотри [4]
StriderMan (2006-11-15 16:00:00) [5]
> novill © (15.11.06 15:58) [3]
> ТЫ ПРОБОВАЛ???
работает, круто! спасибо!
это получается то что не попало под условие onавтоматом вываливается наружу?
novill (2006-11-15 15:58:00) [6]> так все другие исключения проглотятся, что нельзя.
ТЫ ПРОБОВАЛ???
procedure TForm1.Button1Click(Sender: TObject);
begin
try
(sender as TOpenDialog).Execute; // просто для генерации ДРУГОГО ИСКЛЮЧЕНИЯ
Write('1');
except
on e:EInOutError do
begin
e.Message:='Kyky';
raise;
end;
end;
end;
evvcom (2006-11-15 15:58:00) [7]Дык, там же еще else есть! Чтите help!
StriderMan (2006-11-15 15:55:00) [8]
> novill © (15.11.06 15:51) [1]
так все другие исключения проглотятся, что нельзя.
novill (2006-11-15 15:51:00) [9]попробуй
try
//код
except
on E: EMyException do
begin
E.Message := 'МОЕ исключение';
raise;
end;
end;