× 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.



Rob

Where is the MONMSG on page 20? I never suggest having ONLY a global MONMSG - always have local handlers for situations you know about. Those will give you the very necessary reusability you want.

We are talking about percolation of error handling here - I think Bruce V said that if you don't have a global MONMSG, you are telling the system to use the default global handler. It's how the system has always worked - handle an error at some internal level, resend it as needed or take appropriate action. Same in RPG as in CL or C. Write cancel or exception handlers with APIs to get even more granular capabilities. But in the end, there will be things that you can't anticipate - make them more friendly than giving the user the C I R options.

Vern

rob@xxxxxxxxx wrote:
Sample

MONMSG CPF0000 GOTO(ERRSTUFF)
...
Page 20
...
CPYF MYLIB/MASTERFILE QTEMP/WORKFILE...
DLTF MYLIB/MASTERFILE
CALL ProgramToRecreateMasterFile
...
Page 27
...
goto end
errstuff:
/* handle errors with pretty email */
end:

Now, instead of taking an R when ProgramToRecreateMasterFile blew up I have no MASTERFILE. And my QTEMP copy of WORKFILE is gone. But at least I have pretty email.

The other problem is that developers often get lazy by relying upon the generic top level MONMSG and errors go on for years unnoticed - seen that. But that's mostly without the goto.


Rob Berendt

As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.