Data Exception Example
MC logo
 

Data Exception Example

Ada Code Examples


<<EOF Exception Example Download Data Exception with Continuation Example>>
--
-- This program reads and echos integers, but tries to print a reasonable
-- message when the data is bad.  It catches the Data_Error exception to
-- do this.
--
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure ReadOut2 is
   N: Integer;          -- Number read.
begin
   -- Issue the lovely decoration.
   Put_Line("-----------------------------------------------------" &
            "-----------");

   -- Copy lines like there's no tomorrow.  And no bad data, either.
   loop
      Get(N);
      Put(N, 1);  -- Note, the 1 strips leading spaces from output.
      New_Line;
   end loop;

   exception
   when Data_Error =>
      -- This does a text read to show what the input near the error
      -- looks like.
      declare
         S: String(1..40);      -- Portion of input file.
      begin
         Get_Line(S, N);
         Put("Bad data: '");
         Put(S(1..N));
         Put_Line("'");
      end;

      -- Note: We cannot return to the read loop at this point.  This
      -- procedure is over.

   when End_Error =>
      -- When reaching end of file, issue the closing lovely decoration and
      -- return from the procedure.
      Put_Line("-----------------------------------------------------" &
               "-----------");

end ReadOut2;
<<EOF Exception Example Data Exception with Continuation Example>>