[fpc-pascal] A simple "exception handling" question
Bob Richards
bob at tamara-b.org
Sat Jan 28 21:45:19 CET 2006
I must not understand a fundamental concept here. Perhaps someone can point me in the
right direction.
{$mode Delphi} //Delphi or objfpc same results
program hextest; // or why can't I trap an exception?
uses Sysutils,strutils;
var
b:byte;
hex:string;
begin
Write('Enter a hex String: ');
ReadLn(hex);
Try
b:=Hex2Dec(Hex);
Except
On EConvertError do
Begin
WriteLn(hex,' is not a valid hex number! Terminating...');
Halt
end
end;
WriteLn('Hex value ',hex,' is decimal value: ',b)
end.
Upon execution:
$ ./hextest
Enter a hex String: 0A
Hex value 0A is decimal value: 10
Cool!
$ ./hextest
Enter a hex String: FF
Hex value FF is decimal value: 255
Still Cool!
$ ./hextest
Enter a hex String: ZZ
Hex value ZZ is decimal value: 0
Certainly NOT cool!
According to the docs on function "Hex2Dec" in Strutils:
"If S does not contain a valid hexadecimal value, an EConvertError exception will be raised."
So, what profound lack of understanding am I suffering from? Anybody?
Bob
More information about the fpc-pascal
mailing list