Try ... except проблема
Модератор: Модераторы
Try ... except проблема
function Calc(g,p:extended):extended;
begin
ResetResult:=false;
try
Calc:=exp(p*ln(g));
except on EOverflow do ResetResult:=true;
end;//try
end;
Так в Delphi. Подскажите пожалуйста, как бы это выглядело в FPC?
begin
ResetResult:=false;
try
Calc:=exp(p*ln(g));
except on EOverflow do ResetResult:=true;
end;//try
end;
Так в Delphi. Подскажите пожалуйста, как бы это выглядело в FPC?
BJIaquMup писал(а):Не открывается ссылка.
Не знаю. У меня открывается. Если документация есть, то это "Free Pascal :Reference guide.", раздел 13.2
Хотя можно поверить наслово
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
А что у тебя за ResetResult
Может Result? хотя нет, не понятно...
Приведи полный код, и укажи версию своего компилятора.
----------------------
Обрати на место положение {$MODE DELPHI}, в новой версии компиятора (у меня 2.3.1) если указать после uses, то не компилятор генерирует предупреждение и игнорирует эту директиву, поэтому не работает.
Может Result? хотя нет, не понятно...
Приведи полный код, и укажи версию своего компилятора.
----------------------
Обрати на место положение {$MODE DELPHI}, в новой версии компиятора (у меня 2.3.1) если указать после uses, то не компилятор генерирует предупреждение и игнорирует эту директиву, поэтому не работает.
Код: Выделить всё
program test;
{$MODE DELPHI}
uses SysUtils;
var ResetResult : boolean;
function Calc(g,p:extended):extended;
begin
ResetResult:=false;
try
Calc:=exp(p*ln(g));
except on EOverflow do ResetResult:=true;
end;//try
end;
begin
calc(0, 0);
end.-
SAK
- постоялец
- Сообщения: 158
- Зарегистрирован: 17.02.2006 23:45:14
- Откуда: Тим
- Контактная информация:
А в чём проблема-то, при компиляции или при выполнении? У меня при компиляции нет ошибок, при выполнении происходит исключение деления на 0.
Почему не написать проще:
В этом случае исключение обрабатывается.
Почему не написать проще:
Код: Выделить всё
try
Calc:=exp(p*ln(g));
except ResetResult:=true;
end;//try
В этом случае исключение обрабатывается.
А проблема оказалась здесь:
Это всё после ввода директивы компилятору подключение модуля Delphi {$ MODE DELPHI}
Код: Выделить всё
procedure ingraf;
var gd,gm:smallint;
// 6peg kakou~-mo :-/ Tpe6yem smallint BMecmo integer. uguomu3M!
begin gd:=detect;initgraph(gd,gm,'C:\Pascal\FPC') end;
Это всё после ввода директивы компилятору подключение модуля Delphi {$ MODE DELPHI}
