А нужны ли исключения?
Конечно ! Хотя бы ради "try..finally" Также в обработчиках исключений очень удобно откатывать изменения в БД.
Не просто же так С-ки так изворачиваются с добавлениями оных в разные диалекты С.
Модератор: Модераторы
А нужны ли исключения?
debi12345 писал(а):Конечно ! Хотя бы ради "try..finally" Также в обработчиках исключений очень удобно откатывать изменения в БД.
Не просто же так С-ки так изворачиваются с добавлениями оных в разные диалекты С.
С другой стороны: довольно значительный оверхед,
проблема стыковки с другими библиотеками (языками),
значительные сложности с обеспечением кроссплатформенности решений.
debi12345 писал(а):Не разу с таковыми сложностями не сталкивался. Можно примеры где можно ожидать ?
debi12345 писал(а):Как что ? То,что обычно делают необработанные исключения - вышибить прогу с сообщением об ошибке,чтобы она не наделала проблем. Если отлавливаемое - фиксить ошибку в обработчике. Выносить код проверки и обработки в отдельное от рабочего кода место - очень удобно, во многом поэтому пипл обожает исключения
Mikhail писал(а):А нужны ли исключения?
Mikhail писал(а):Неудачно выразился. Я имел в виду, что на некоторых платформах нельзя будет использовать исключения. Что вызовет проблемы при использовании библиотек которые их используют, с кодами ошибок такой проблемы не может возникнуть в принципе.
а если есть угроза переполнений и деления на ноль, то и перед вычислениями.
В тех случаях, где нет системной обработки исключений, нельзя гарантировать, что мы всегда попадем в FINALITY
Hi,
Here examples of the planned compound statements. Additional ';' after
statements are possible, they are treated as empty statements.
"
begin
a:= 1;
b:= 2
end;
with rec1:r do
r.field1:= 123
end;
with rec2:r,r.field1:s do
r.field1.field1:= 123; //or
s.field1:= 123;
end;
if a = 1 then
b:= 1
end;
if a = 1 then
b:= 1;
c:= 3
else
b:= 2
end;
if a = 1 then
if b = 1 then
c:= 3
end
else
b:= 2
end;
case a of
1:
b:= 10
2:
b:= 15
else
b:= 0
end;
//break and continue can be used in loops
repeat
b:= b * 2;
a:= a + 1
until a > 4;
while a > 4 do
b:= b * 2;
a:= a + 1
end;
for a in 0..13 do
b:= b + ar[a]
end; //loop variable is readonly in loop and valid after loop
for a in 13..1 do
b:= b + ar[a]
end;
if c >= 0 then //I am not happy with that additional check
for a in 0..c do
b:= b + ar[a]
end
end;
"
Opinions?
begin
a:= 1;
b:= 2
end;
with r: rec1 do
r.field1:= 123
end;
with r: rec2, s: r.field1 do
r.field1.field1:= 123; //or
s.field1:= 123;
end;
if a = 1 then
b:= 1
end;
if a = 1 then
b:= 1;
c:= 3
else
b:= 2
end;
if a = 1 then
if b = 1 then
c:= 3
end
else
a:= 2;
b:= 2
end;
case a of
1:
b:= 10;
c:= 15
2:
b:= 15
else
b:= 0;
c:= 18
end;
//break and continue can be used in loops
repeat
b:= b * 2;
a:= a + 1
until a > 4;
while a > 4 do
b:= b * 2;
a:= a + 1
end;
for a in 0 to 13 do
b:= b + ar[a]
end; //loop variable is readonly in loop and valid after loop
for a in 13 downto 1 do
b:= b + ar[a]
end;
for a in 0 to c do
b:= b + ar[a]
end
mse писал(а):Currently the state is
if a>1 then
...
else
...
end;
if a>1 then
...
elsif a<10 then
...
elsif c>3 then
...
else
...
end;
if a>1 then
...
elsif a<10 then
...
elsif c>3 then
...
end;
for i in <from>..<to> [BY <STEP>] ..
elsif
debi12345 писал(а):"elif" or "elseif"
Mikhail писал(а):Может лучше сделать счетчик в цикле "for" встроенным и необязательным?
Лекс Айрин писал(а):Mikhail писал(а):Может лучше сделать счетчик в цикле "for" встроенным и необязательным?
одно из правил программирования, насколько я помню, гласит, что не стоит полагаться на умолчания. Встроенный счетчик это хорошо... но как же выкручиваться в ситуациях, когда номер итерации используется в теле цикла, для ситуации с вложенными циклами?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1