comp.lang.ada
 help / color / mirror / Atom feed
From: wdl39!mab@ford-wdl1.arpa  (Mark A Biggar)
Subject: Re: Semantics Question
Date: 6 Jan 93 18:10:34 GMT	[thread overview]
Message-ID: <1993Jan6.181034.4367@wdl.loral.com> (raw)

In article <9300612.21535@mulga.cs.mu.OZ.AU> fraser@munta.cs.mu.OZ.AU (Fraser W
ilson) writes:
>Hi.  I have a small question regarding exceptions, the answer to which
>I couldn't find in the ARM.  Basically, what happens if you raise a
>local exception, but don't handle it before the end of the block in which
>it is declared.  Like this:
>procedure p is
>  procedure q is
>    e : exception;
>  begin
>    raise e;
>  end q;
>begin
>  q;
>end p;
>Is the result defined somewhere, or not?  If there are handlers in
>subprograms that call p, and they handle any exception (ie, with an
>others clause), will they catch e?  Should the program abort as soon
>as it leaves e's scope?

This is well defined. See LRM 11.2.5.  Exceptions whose names are not visible
in the curent scope (this includes excetptions propagated out of scope) can be
handled using a "when others =>" exception handler.  Ada9x does the same thing
but also provides a method of getting a name string for the exception so that 
at least you can output a reasonable report before dying.

--
Mark Biggar
mab@wdl1.wdl.loral.com

             reply	other threads:[~1993-01-06 18:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-01-06 18:10 Mark A Biggar [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-01-06  1:23 Semantics Question munnari.oz.au!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!fraser
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox