Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Errorhandler.prg does not exist
Message
From
25/08/1997 11:06:15
 
 
To
25/08/1997 10:21:44
Matt Mc Donnell
Mc Donnell Software Consulting
Boston, Massachusetts, United States
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00046661
Message ID:
00046691
Views:
88
>>>I occasionally get the preseding error in my .exe. The errorhandler works most of the time, but in certain instances, I get this error instead. Clicking ignore, or cancel does nothing but get the error off the screen, and then the entire program is useless as any actionproduces the message again. I have to ctrl+alt+del to exit the program.
>>>the following is in my main file before the instantiation of the app object:
>>>ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO())
>>>and the error handler is at the end of the main file:
>>>
>>>FUNCTION ErrorHandler(nError,cMethod,nLine)
>>>LOCAL lcErrorMsg,lcCodeLineMsg
>>>
>>>WAIT CLEAR
>>>lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)
>>>lcErrorMsg=lcErrorMsg+"Method: "+cMethod
>>>lcCodeLineMsg=MESSAGE(1)
>>>IF BETWEEN(nLine,1,10000) AND NOT lcCodeLineMsg="..."
>>> lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
>>> IF NOT EMPTY(lcCodeLineMsg)
>>> lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
>>> ENDIF
>>>ENDIF
>>>IF MESSAGEBOX(lcErrorMsg,17,_screen.Caption)#1
>>> ON ERROR
>>> RETURN .F.
>>>ENDIF
>>>ENDFUNC
>>>
>>>The handler works fine until the program seems to 'lose' the location of the function. An additional hint, I get this message whenever there is an error with Foxfire! inside my program. This is not the only time however. An inescapable loop is pretty frustrating fot the user, and it is embarrasing to have to tell them to ctrl-alt-del to shut down my program. What am I doing wrong with the errorhandling?
>>>
>>>TIA
>>
>>Maybe in your clean-up code from FoxFire! you could explicitly set the error handler back you yours, i.e. ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO()). Do this AFTER FoxFire! has completed all other processing and control has been returned to your calling program.
>>
>>HTH
>
>You could also remove the function from your main program and create a prg called: ERORHNDL.PRG (I use 8.3 in case it gets used in an 8.3 limited file server) Put ERORHNDL.PRG in your main app directory.
>
>...shot in the dark....

Valerie- I don't think that this would get me anywhere because when an error occurs in Foxfire! the processing never gets a chance to return to the cleanup... it's stuck in Foxfire!
Matt I will try your suggestion, and it will probably solve the problem, but I really want to know what's going on with the way I have it set up. Why can't I handle my errors like all the other programmers? Waaahhhhh... :-)

Thanks for the help guys.

Erik
Erik Moore
Clientelligence
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform