comp.lang.ada
 help / color / mirror / Atom feed
From: pa.dec.com!nntpd2.cxo.dec.com!etre!wallace@decwrl.dec.com  (Richard Walla
Subject: Re: VMS ADA - status return
Date: 26 Apr 93 16:26:13 GMT	[thread overview]
Message-ID: <1993Apr26.162613.8551@nntpd2.cxo.dec.com> (raw)

Ian Williams (iwilliam@au.oracle.com) wrote:
: Hi All,
: 
: I am a beginner ADA'er and am trying to have my program return non
: successful error statuses in my exception handlers..
: I have managed to raise the SAME exception in my handler, but this causes
: a half page dialog of stack dump information which is really not what I wante
d.
: 
: I simply want to be able to say something like this from DCL
: 
: $  myprog :== $mydir:myprog.exe
: $  myprog param1 param2
: $  if $status = errorval then etc.
: 
: How can I do this easilly?
: How can I find values to pass to LIB$STOP and not cause access violations???
: 
: --
: ---------------------+-------------+-----------------------------------------
: Ian Williams         |    _--_|\   |      Internet: iwilliam@au.oracle.com
: Oracle Systems       |   /      \  |	  Phone	  : +61 8 239 3900
: Adelaide, Australia  |   \_.--*_/  |
:                      |         v   |

Ian,
	Here's how it's done.

Aloha,
	Richard

Richard Wallace
Senior Software Engineer
Digital Equipment Corporation
301 Rockrimmon Blvd. South
CXO2-1/7A
Colorado Springs, CO 80919-2398
(719)548-2792
<wallace@cookie.enet.dec.com>

"The opinions expressed are my own, B.P. may not *quite* agree..."

-----------------------------------
-- Ada program
-----------------------------------
with STARLET;
use  STARLET;

with CONDITION_HANDLING;
use  CONDITION_HANDLING;
-- ++
-- What we're going to do here is raise an exception
-- and reraise it so that the program exits and DCL
-- gets the status return.  We'll check the status
-- return at the DCL level.
procedure EXCEPTION_GENERATION is
   REAL_BAD_EXCEPTION : exception;
   OTHER_EXCEPTION    : exception;
   SWITCH_VALUE       : INTEGER;

   EXIT_STATUS        : COND_VALUE_TYPE;
   CODE               : COND_VALUE_TYPE;

begin
   SWITCH_VALUE := 1;
   CODE         := 33;

   if SWITCH_VALUE = 3 then
      raise OTHER_EXCEPTION;
   elsif SWITCH_VALUE = 1 then
      raise REAL_BAD_EXCEPTION;
   end if;

exception
   when REAL_BAD_EXCEPTION =>
      EXI ( EXIT_STATUS, CODE );
      -- The EXIT_STATUS isn't checked as this
      -- VMS call transfers control directly
      -- from this code stream.

end EXCEPTION_GENERATION;

$!---------------------------------
$! DCL command procedure
$!--------------------------------
$! Test command procedure
$! Run the program and do something with the $STATUS
$! DCL runtime symbol.
$r/nodebug exception_generation
$if($STATUS .EQ. 33)
$then
$       write sys$output "something very bad has happened"
$endif
$exit 1
$eod

             reply	other threads:[~1993-04-26 16:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-04-26 16:26 pa.dec.com!nntpd2.cxo.dec.com!etre!wallace [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-04-22  0:34 VMS ADA - status return Ian Williams
replies disabled

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