|
Hans,
I have to say that I really like the try/catch approach to error
handling. (and, frankly, I *hate* the way error catching currently
works in RPG... its ugly, and often takes a lot of work to get it
to do what you want to do.)
I would, however, RPG-ize it a bit. Make it work more like the
Select/When works now. And make sure there is a way to determine
WHICH exception happened, and why... (without having to resort
to various data structures such as the PSDS or INFDS)
maybe something like:
C TRY ERRFLD
C ..... insert one or more lines of code here...
C CATCH ERRFLD = 'CPF2105'
C ..... insert one or more lines of error handling code....
c CATCH ERRFLD = 'CPF0001'
C ..... insert one or more lines of error handling code....
C FINALLY
C .... more code again ...
C ENDTRY
Otherwise, I also like the way that C programs handle errors.
(check for a bad response, and then check errno to see what it
was, use strerror to get a text description, or use perror to
simply print that error)
As a third choice, I'd go for something like the CL MONMSG command...
Though this can get to be a bit awkward... I'd prefer to have
something like try/catch where you can monitor multiple statements
of code all in one grouping...
Thats my 2 cents...
Scott Klement
Information Systems Manager
Klement's Sausage Co, Inc.
boldt@ca.ibm.com wrote:
>
> Jon wrote:
> >Hans - I like the try/catch type approach in some ways but it is
> overkill in
> >many ways. Why not simply permit the coding of the "E" extender on
> numeric
> >operations? That way I can trap at the statement level if I wish.
>
> On the other hand, the E extender, as currently designed, already
> has serious limitations. For example, coding E on a WRITE will
> trap file exceptions, but not program exceptions. But on other
> opcodes, it does trap program exceptions.
>
> Perhaps it is overkill, but when writing new apps, it's the only
> exception handling method you need to know about. Today, you need
> to know about INFSR's, *PSSR's, error indicators, extender E, etc.
> MONITOR is one easy-to-understand technique that can replace all
> others.
>
> Cheers! Hans
>
> Hans Boldt, ILE RPG Development, IBM Toronto Lab, boldt@ca.ibm.com
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the RPG/400 Discussion Mailing List! To submit a new *
* message, send your mail to "RPG400-L@midrange.com". To unsubscribe *
* from this list send email to MAJORDOMO@midrange.com and specify *
* 'unsubscribe RPG400-L' in the body of your message. Questions should *
* be directed to the list owner / operator: david@midrange.com *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.