DEFINE CLASS cusPAYROLL as CUSTOM cMethodToReturnTo = '' PROCEDURE myMethod THIS.cMethodToReturnTo = PROGRAM() THIS.pck_Records() RETURN THIS.lError ENDPROC PROCEDURE pck_Records() ..... processing ERROR 5 << works fine ..... processing ENDPROC PROCEDURE ERROR() LPARAMETERS nError, cMethod, nLine LOCAL lcError, llJustLogError, lcReturn WITH THIS .lError = .T. ***** determine which method the error occured in DO CASE CASE ATC( 'pck_Records', cMethod )>0 llJustLogError = .T. CASE ATC( 'csCount', cMethod )>0 llJustLogError = .T. OTHERWISE ***** Unanticipated error occured llJustLogError = .F. ENDCASE lcError = ON('Error') IF llJustLogError ***** triggers Errorhandler to RETURN rather than QUIT lcError = lcError + [, .T.] ENDIF lcError = STRTRAN( lcError , 'PROGRAM()', ['] + .NAME + '.' + cMethod + ['] ) lcError = STRTRAN( lcError , 'LINENO()', TRANSFORM(nLine) ) lcError = STRTRAN( lcError , 'ERROR()', TRANSFORM(nError) ) &lcError lcReturn = "RETURN TO " + .cMethodToReturnTo &lcReturn ENDWITH ENDPROC ENDDEFINE&lcReturn