Exceptions.
%%% Raising (throwing) an exception
declare
fun {Divide N M}
if M \= 0
then N div M
else raise divByZero end
end
end
{Browse {Divide 5 2}}
%{Browse {Divide 5 0}}
%%% Catching an exception:
try
{Browse {Divide 5 0}}
catch divByZero then
{Browse 'Division by zero is bad'}
end
%%% An exception can have a parameter
declare
fun {YearsUntilGraduation GradYear}
if (GradYear < 2016 orelse GradYear > 2021)
then raise invalidGradYear(GradYear) end
else GradYear - 2016 end
end
{Browse {YearsUntilGraduation 2019}}
%%% The parameter can be used when the exception is caught
try
{Browse {YearsUntilGraduation 2040}}
catch invalidGradYear(Year) then
{Browse 'The year '#Year#' is invalid'}
end
CSci 4651
course web site.