with Ada.Text_IO,Ada.Integer_Text_IO;
use Ada.Text_IO,Ada.Integer_Text_IO;
procedure Except3 is
procedure Divide_By_Zero(Count:Integer)is
Divide_Result:Integer;
begin
Put("Count is");Put(Count,3);Put(" and the answer is ");
Divide_Result:=25/(Count-4);Put(Divide_Result,4);
New_Line;
exception
when Constraint_Error=>Put_Line(" Divide by zero error!");
end Divide_By_Zero;
procedure Raise_An_Error(Count:Integer)is
My_Own_Error:exception;
Another_Result:Integer;
begin
Put("Count is");Put(Count,3);
Another_Result:=35/(Count-6);--untested divide by zero
if Count=3 then
raise My_Own_Error;
end if;Put_Line(" and is a legal value ");
exception
when My_Own_Error=>Put_Line(" My own error occured");
end Raise_An_Error;
begin
Put_Line("Begin a program here!");for Count in 1..7 loop
Divide_By_Zero(Count);Raise_An_Error(Count);
end loop;Put_Line(" End of program");
exception
when Constraint_Error=>Put("Constraint error detected at the main program level Program terminated.");
end Except3;