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

Вниз

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

 
Vladimir88   (2005-09-30 14:47) [0]

(Delphi 7 или 2005) Можно ли как-нибудь провернуть чтоб в одном блоке try юзать и finally и except, мне кажется это очень полезная фишка и должна быть, но в справке ничего подобного не нашёл.


 
Anatoly Podgoretsky ©   (2005-09-30 14:51) [1]

Это две разные, как языковые, так и логические конструкции.
А у тебя что проблемы психологического порядка?


 
Lamer@fools.ua ©   (2005-09-30 14:53) [2]

>>Anatoly Podgoretsky ©   (30.09.05 14:51) [1]

Вот логически их как раз можно объединить. Так сделано в C#, например.

try
{
}
catch (...)
{
}
catch (...)
{
}
finally
{
}


 
ZeroDivide ©   (2005-09-30 14:58) [3]

try
 .......
 try
 except
   ....
   Raise; //Rerasing Exception
 end;
finally

end;


 
Vladimir88   (2005-09-30 15:00) [4]

Да, вот так же бы как в C# сделать


 
TUser ©   (2005-09-30 15:00) [5]

Я из подобного обсуждения тут как-то понял, что отсутствие "объединенного" оператора - плата за скорость работы компилятора Delphi.


 
Digitman ©   (2005-09-30 16:27) [6]


> Да, вот так же бы как в C# сделать


ты еще как в Васике сделай)

там вообще с этим делом - засада)

ЧЕМ тебе не понравились всевозможного рода вложенные конструкции из блоков try..finally и try..except ?

все там четко, строго, наглядно и понятно ... как и во всем Паскале как таковом ..


 
Vladimir88   (2005-09-30 17:11) [7]

Люблю когда всё красиво выглядит(как например можно поизвращаться в Си с тем-же циклом for), хотя на самом деле действительно рекомендуется разделять операторы для наглядности.


 
Юрий Зотов ©   (2005-09-30 17:13) [8]

> Vladimir88   (30.09.05 17:11) [7]
> Люблю когда всё красиво выглядит

Если так, то тогда Вам надо любить как раз Паскаль, а не Си.


 
Digitman ©   (2005-09-30 17:45) [9]


> можно поизвращаться в Си


Паскаль не допускает никаких извращений и двусмысленности/неопределенности.

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


 
ZeroDivide ©   (2005-09-30 18:38) [10]

Паскаль почти не допускает никаких извращений и двусмысленности/неопределенности.

Язык программирования долго страдал противоречивостью в своей спецификации: правила определения эквивалентности типов не были заданы. Например рассмотрим следующие 2 типа языка Pascal:


type complex = record
                      Left: Integer;
                      Right: Integer;
                    end;

type coordinate = record
                      Left: Integer;
                      Right: Integer;
                    end;


Идентичны ли эти 2 типа? Очевидно, что они содержат одни и те же типы компонентов. От того, как мы определим язык, зависит, можно ли будет передать значение coordinate процедуре, принимающей аргумент типа complex и наоборот. Если можно, то говорят, что наш язык использует структурную эквивалентность при идентификации типов. С другой стороны, мы можем определить 2 типа как эквивалентные в том и только в том случае, если их имена одинаковы. В этом случае говорят, что в языке использована именная эквивалентность.
 Какой вариант выбран в спецификации языка Pascal? Изначально небыло сделано ни какого выбора. Никто так и не догадался, что существует несколько способов определения эквивалентности типов! В результате, каждая команда программистов, занимающаяся реализацией языка Pascal, должна была сама сделать выбор (и зачастую подобные комманды даже не осознавали, что они делают этот выбор). В результате этой неопределенности программа, написаная на Pascal для одной реализации языка, может вести себя совершенно по-другому в остальных реализациях.
  (c) Eric Allen


 
Anatoly Podgoretsky ©   (2005-09-30 19:41) [11]

В этом отношении хорош АДА

type
  Linear: Integer;
  Square: Integer;
var
  A, B: Linear;
  C: Square;
begin
  C := A * B;


В Паскале можно, в АДО нельзя. Очень строгий язык в отличии от Паскаля, особенно учитывая, что Борланд постоянно снижала строгость, плевав на Вирта.



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1127978088
Friend
2005-09-29 11:14
2005.10.23
res файл


6-1120248059
TNM_Stream
2005-07-02 00:00
2005.10.23
Автоматическое обновление (обои)


5-1104312423
Anatoly
2004-12-29 12:27
2005.10.23
Вызов редактора компонента из Popup-меню


11-1109400580
NAGRIS
2005-02-26 09:49
2005.10.23
TKolTreeView


1-1127968646
Unitay
2005-09-29 08:37
2005.10.23
Сохранение png