正如David所指出的,異常在控制檯應用程序中的工作方式與在GUI應用程序中一樣好。例如,這個完美的作品:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
s: string;
f1, f2: extended;
begin
try
Writeln('Please enter a number:');
Readln(s);
f1 := StrToFloat(s);
Writeln('Please enter a second number:');
Readln(s);
f2 := StrToFloat(s);
Writeln('The sum is ', FloatToStr(f1+f2));
Readln;
except
on E: Exception do
begin
Writeln(E.Message);
Readln;
end;
end;
end.
不使用異常的另一種方法是使用TryStrToFloat
功能:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
s1, s2: string;
f1, f2: extended;
begin
Writeln('Please enter a number:');
Readln(s1);
Writeln('Please enter a second number:');
Readln(s2);
if TryStrToFloat(s1, f1) and TryStrToFloat(s2, f2) then
Writeln('The sum is ', FloatToStr(f1 + f2))
else
Writeln('Invalid input.');
Readln;
end.
異常處理工作正常,在控制檯應用程序 - 必須有東西,你不告訴我們 –
我有什麼要隱藏大衛? num1是Double類型的。 – CyprUS
你是什麼意思的「導致應用程序崩潰」? –