MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » July 2013

Re: Leave outside of DO group???



fixed

Could he do a NOT/Else with the NOt MonMsg... else leave?

On 7/23/2013 4:51 PM, Dan Kimmel wrote:
Still, I like the concept. It'd be a way to get out of a block of code without a GOTO. The Do .. EndDo marks the block of code. Are there other ways to jump out of a block in CL structured op codes?

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of CRPence
Sent: Tuesday, July 23, 2013 4:13 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: Leave outside of DO group???

On 23 Jul 2013 13:48, DrFranken wrote:
I wrote this snippet of code:

Do
ChkObj QSTRUPEX1 *Pgm /* Check for exit program. */
MonMsg CPF9800 EXEC(Leave) /* Not there or Not Authorized */
Call QSTRUPEX1 /* Run it. */
MonMsg CPF0000
EndDo


At the LEAVE Statement I get this error:
* CPD0883 30 LEAVE command found outside of DO group.

But it sure appears to be inside a Do group to me!

Am I in error if I 'complain' to the fine folks in the land of IBM
i?

AFaIK the error is correct, and ...

The implied command label [CMDLBL(*CURRENT)] is, as worded in the
message CPD089A, is not "associated with an active DOWHILE, DOUNTIL, or
DOFOR group". The additional\second-level text of that CPD0883 [e.g. as
presented by F1=Help] should further state that "The LEAVE command must
be inside a DOWHILE, DOUNTIL, or DOFOR command group."

FWiW: Coding the MONMSG CPF0000 as shown is not a good practice; just
as well remove the prior CHKOBJ and MONMSG to get effectively the same
results with less work.

--
Regards, Chuck
--






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact