program HandleInvalidArgument;
function Factorial(n: Integer): Integer;
begin
if n < 0 then
begin
WriteLn('Error: Factorial of a negative number is undefined.');
Exit(-1);
end;
if n = 0 then
Factorial := 1
else
Factorial := n * Factorial(n - 1);
end;
begin
WriteLn('Factorial: ', Factorial(-7)); // Detects invalid argument
end.
(*
run:
Factorial: Error: Factorial of a negative number is undefined.
-1
*)