Pascal 如何在try-except语句中查找ObjFPC中的错误号
我正在试图找到一种方法来检测objfpc中的错误no,我尝试的如下所示:Pascal 如何在try-except语句中查找ObjFPC中的错误号,pascal,freepascal,delphi,Pascal,Freepascal,Delphi,我正在试图找到一种方法来检测objfpc中的错误no,我尝试的如下所示: Program ErrorHandling; {$R+} {$MODE objfpc} Uses SysUtils, crt; Var intvar: 1 .. 100; Begin Try clrscr; writeln( 'enter intvar: '); readln(intvar); Except on e: Exception Do
Program ErrorHandling;
{$R+}
{$MODE objfpc}
Uses
SysUtils, crt;
Var
intvar: 1 .. 100;
Begin
Try
clrscr;
writeln( 'enter intvar: ');
readln(intvar);
Except
on
e: Exception
Do
Begin
writeln('In Exception, IOResult: ',IOResult);
Case IOResult Of
201: writeln('Range intvar out of range 1-100!'); {How can we find that Error no is 201}
Else
writeln('Unkown Error!'); readln;
End
End
End;
writeln('intvar: ' , intvar);
readln;
End.
但是,我们如何才能发现201范围错误是否发生。我尝试使用IOResult命令,但它总是显示我的case语句的“未知错误”字符串。使用异常,您可以按异常本身的类型检查错误类型 经典的方法是:
try
clrscr;
writeln('enter intvar: ');
readln(intvar);
except
on e: ERangeError do // Executes when raised exception is ERangeError
begin
Writeln('Range intvar out of range 1-100!');
end;
on e: Exception do // Executes for any other exceptions
begin
Writeln(e.ClassName); // Shows exception class you can use at the "on e:" constuction
Writeln(e.Message);
end;
end;
请查看官方文档。谢谢您。我正在浏览fpc官方文档,但没有关于ERangeError的任何内容,尽管这里给出了一些数学异常,您能告诉我SysUtils中存在的所有异常的列表吗。Exceptions@user3051677->->->->,然后看看以
E
开头的类。