A try/catch block is supposed to catch either a specific error or a generic error, and return control to the "catch" block if one occurs. (Skipping the catch block of course if no error occurs.)
It is supposed to catch serious errors too I believe, like divide-by-zero, protection exceptions (SIGSEGV, S0C4) etc. I'm liking the ESTAE before the PC option. My only real concern there is performance. Since this routine is called for every block read from disk, it's going to be called a LOT of times (which is why I wrote this to begin with.) David Logan -----Original Message----- From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of Binyamin Dissen Sent: Monday, January 07, 2008 6:25 AM To: [email protected] Subject: Re: C++ recovery from (an otherwise) system abend On Mon, 7 Jan 2008 06:07:51 -0700 David Logan <[EMAIL PROTECTED]> wrote: :>I'm using assembler along with C. What "environment" did you have in mind? :>Perhaps an ESTAE that's set just before the PC and cleared just after? I think that he expects the try/catch to do an ESTAE. What does a try/catch do? Trap non-zero return codes? :>-----Original Message----- :>From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf :>Of Bill Wilkie :>Sent: Sunday, January 06, 2008 2:22 PM :>To: [email protected] :>Subject: Re: C++ recovery from (an otherwise) system abend :>I haven't done any work on the MF in this regard so forgive me if I am all :>wet here, but on the PC side, I know you can intersperse PC assembler in the :>C++ code to implement low-level operations. Is that possible on the MF side? :>If so, you may be able to set up the environment you are looking for. Just a :>thought. :>Bill> Date: Sun, 6 Jan 2008 14:54:03 -0600> From: [EMAIL PROTECTED]> :>Subject: Re: C++ recovery from (an otherwise) system abend> To: :>[email protected]> > David, > > have you tried a LE-Condition-handler :>instead of catch()? I believe a > C catch() wont work for an LE enabled :>assembler program. > Did you get a CEEDUMP with the abend code?> Have you :>tried a USRHDL or register a Condition handler?> > roland> > > >The main :>problem with this solution (or any other solution) that checked> >something :>before I make the PC call is that the server could crash (or be> >brought :>down) between the check and the PC call.> >> >Were I to implement something :>like the solution you describe, I would hope> >that I could either use the :>get name/token pair routine to check to make> >sure the server is up, or :>perhaps be able to check for existence of the> >servers ASCB or TCB, so that :>I didn't need to place anything into common> >storage.> >> >What I was :>hoping for was a solution where there was no chance of> >intermittent :>failure. The only way I know of to support that would be to be> >able to :>trap the ABEND. Is there really no way to issue an ESTAE type of> >recovery :>routine in C++ and return control to some function or something> >similar?> :>>> >Thanks!> >> > -- Binyamin Dissen <[EMAIL PROTECTED]> http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

