Delphi: Példa kivételkezelésre
Programozással kapcsolatos cikkek / Delphi (1432 katt)
Nemrégiben letöltöttem az Embarcadero® Delphi 10.3 Community verzióját. Így hosszú évek elteltével ismét lehet ingyenesen - és jogtisztán - próbálgatni a legújabb Delphi fejlesztői környezet lehetőségeit.
Próbaképpen írtam egy rövid programot, amelyben az exception handling lehetőségét teszteltem. A konzolos program bekér két számot a felhasználótól, majd megpróbálja kiszámolni a két szám hányadosát. Ha hiba történik, pl. nem számot adott meg a felhasználó, vagy nullával próbál osztani, akkor a program elkapja a kivételt, és kiír egy viszonylag jól értelmezhető hibaüzenetet.
A program listája a következő:
program ExceptionExample;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var aText : string;
bText : string;
a : double;
b : double;
res : double;
begin
// A really simple Delphi exception handling example
// Kapitany, 2019.01.16.
Write('a = ');
Readln(aText);
Write('b = ');
Readln(bText);
try
a:=StrToFloat(aText);
b:=StrToFloat(bText);
res:=a / b;
Writeln('a / b = ' + FloatToStr(res));
except
on e : EConvertError do
Writeln('Invalid number!');
on e : EZeroDivide do
Writeln('Division by zero error!');
on E: Exception do
Writeln('Error: ' + E.Message);
end;
Readln;
end.
Másképpen is meg lehet írni ezt a programot, néhány helyen egy kicsit egyszerűsítve rajta:
program ExceptionExample2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var a : double;
b : double;
begin
// A really simple Delphi exception handling example
// Kapitany, 2019.01.16.
try
Write('a = ');
Readln(a);
Write('b = ');
Readln(b);
Writeln('a / b = ', FloatToStr(a / b));
except
on e : EInOutError do
Writeln('Invalid number!');
on e : EZeroDivide do
Writeln('Division by zero error!');
on E: Exception do
Writeln('Error: ' + E.Message);
end;
Readln;
end.
Előző oldal | Kapitány |