The Ada Program: fragment2.adb
1 --: an Ada block declaring, raising, and handling exceptions
2
3 Block_Y: declare
4
5 E1, E2: exception;
6
7 procedure P (N: Integer) is begin raise E1; end P;
8
9 function F (N: Integer) return Integer is
10 begin
11 raise E2;
12 exception
13 when E1 => Text_IO.Put_Line ("handler 1"); return (1);
14 when E2 => Text_IO.Put_Line ("handler 2"); return (2);
15 end F;
16
17 begin
18
19 P (F (0));
20
21 exception
22
23 when E1 => Text_IO.Put_Line ("handler 3");
24 when E2 => Text_IO.Put_Line ("handler 4");
25
26 end Block_Y;