Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

try ... except ... on   Найти похожие ветки 

 
StriderMan ©   (2006-11-15 15:46) [0]

Доброго времени, мастера! Думал что хорошо знаю исключения, а встал в тупик.

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;
но такой код делфи не съедает


 
novill ©   (2006-11-15 15:51) [1]

попробуй

try
//код
except
on E: EMyException do
    begin
     E.Message := "МОЕ исключение";
     raise;
    end;

end;


 
StriderMan ©   (2006-11-15 15:55) [2]


> novill ©   (15.11.06 15:51) [1]

так все другие исключения проглотятся, что нельзя.


 
novill ©   (2006-11-15 15:58) [3]

> так все другие исключения проглотятся, что нельзя.

ТЫ ПРОБОВАЛ???

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) [4]

Дык, там же еще else есть! Чтите help!


 
StriderMan ©   (2006-11-15 16:00) [5]


> novill ©   (15.11.06 15:58) [3]
> ТЫ ПРОБОВАЛ???

работает, круто! спасибо!

это получается то что не попало под условие on автоматом вываливается наружу?


 
novill ©   (2006-11-15 16:02) [6]

> там же еще else есть!

Угу, но тут он не нужен :)


 
novill ©   (2006-11-15 16:02) [7]

> [5] StriderMan ©   (15.11.06 16:00)

:) смотри [4]


 
StriderMan ©   (2006-11-15 16:04) [8]


> evvcom ©   (15.11.06 15:58) [4]
> novill ©   (15.11.06 16:02) [7]


всем спасибо :).

(ушол стыдливо перечитывать хелп)


 
evvcom ©   (2006-11-16 09:05) [9]

> [6] novill ©   (15.11.06 16:02)

Согласен, это я так, на всякий случай :)



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
2-1163594778
StriderMan
2006-11-15 15:46
2006.12.03
try ... except ... on


2-1163490915
TrainerOfDolphins
2006-11-14 10:55
2006.12.03
Клик с нажатой Ctrl на гриде


2-1163434889
Кевларвестов Семен
2006-11-13 19:21
2006.12.03
Ошибка при компиляции/билде из-за RegQueryValueEx


8-1145545809
Yegorchic
2006-04-20 19:10
2006.12.03
Структура заголовка JPEG файла


4-1153131943
Balkon
2006-07-17 14:25
2006.12.03
Различное поведение различных СОМ портов при асинхронном доступе