#DEFINE vfpCRLF CHR(13) + CHR(10) LOCAL loErr as Exception lox = CREATEOBJECT("ThrowTest") TRY lox.BadCall() CATCH TO loErr loCaught = loErr.UserValue MESSAGEBOX("CAUGHT ERROR" + vfpCRLF + vfpCRLF + ; "Error number: " + TRANSFORM(loCaught.ErrorNo) + vfpCRLF + ; "Method: " + TRANSFORM(loCaught.Procedure) + vfpCRLF + ; "Line Number: " + TRANSFORM(loCaught.LineNo) + vfpCRLF + ; "Line Contents:" + loCaught.LineContents) ENDTRY DEFINE CLASS ThrowTest AS SESSION OLEPUBLIC *!* PROCEDURE ERROR *!* LPARAMETERS nError, cMethod, nLine *!* IF INLIST(_VFP.STARTMODE, 3, 5) *!* COMRETURNERROR("DLL Error Event", ; *!* "ERROR " + TRANSFORM(nError) + " in " + cMethod + ", line " + TRANSFORM(nLine)) *!* ELSE *!* MESSAGEBOX("ERROR METHOD" + vfpCRLF + vfpCRLF + ; *!* "Error number: " + TRANSFORM(nError) + vfpCRLF + ; *!* "Method: " + TRANSFORM(cMethod) + vfpCRLF + ; *!* "Line Number: " + TRANSFORM(nLine) + vfpCRLF) *!* ENDIF *!* ENDPROC PROCEDURE BadCall LOCAL loErr AS Exception, loErr2 AS Exception TRY ERROR 1 CATCH TO loErr IF INLIST(_VFP.STARTMODE, 3, 5) THIS.ERROR(loErr.ErrorNo, loErr.PROCEDURE, loErr.LINENO) ELSE THROW loErr ENDIF ENDTRY ENDPROC ENDDEFINE