>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