× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



>>Second, coding multiple returns in a routine CAN be a bad technique in
>>and of itself.  Multiple returns get to be problematic when you're
>>actually returning a value, and the value you return depends on which
>>point you're exiting from.  Even with a breakpoint on a P-E, it can be
>>difficult to tell what is actually being returned.  And if the calling
>>routine is not placing the value into a temporary value but instead
>>using it as a parameter to another routine (possibly one for which you
>>have no source), or worse yet returning the value to ITS caller, the
>>code can get difficult to debug.

That's why we decided to add a Return-Subroutine in almost each of our
procedure,
like we've done it already in our RPGIII programs.
In the Return-Subroutine, the return values, output parameters
and error handling (sending an excape message if an error occured) are
handled.

Example:
Monitor;
  If ParmXXX = *Blanks;
     Error   = True;
     MsgId   = 'MSG0001';
     exsr XReturn;
  EndIf;
  Chain MyKey MyFileF;
  If Not %Found;
     Error   = True;
     MsgId   = 'MSG0002';
     exsr XReturn;
  EndIf;
  ....
On-Error;
  $Error = True;
EndMon;

XReturn;

BegSR XReturn;
  If Error = True;
     If MsgId = *Blanks;
          MsgId  = 'CPF9898';
          MsgTxt = SDSMsgTxt;
     EndIf;
     SndEscMsg(MsgId: MsgTxt);
  EndIf;
  ParmOut1 = WhatEver;
  If %Parms  >= NbrParmOut2;
     ParmOut2 = MyFld;
  EndIf;
  Return MyRtnValue;
EndSR;

Birgitta


--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.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 on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.