` Comment on an Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Add a comment to an Icetips Article

Please add your comments to this article. Please note that you must provide both a name and a valid email address in order for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!

Your Name:  
Email:  
Header text/Subject:  

Please enter your comment in the box below:

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: ErrorCode After Fetch()
2007-05-13 -- Scott Ripley
 
The standard error functions (errorcode() etc.) are ONLY valid if the error returned is Level:Notify! If you will notice the first line of the TryFetch() method it calls Self.UseFile. If the return code is Level:Fatal from Fetch() or TryFetch() then you CAN NOT rely on errorcode() (etc.) because (sigh... follow closely...) TryFetch calls UseFile which can call OpenServer which can call OpenFile which can call AnError (ROUTINE) which can call Throw (filemanagers) which calls self.errors.takeerror() which calls (now in the errorclass) StoreErrorEntry which calls GetErrorEntry which calls SetID which (FINALLY!) does a GET on a queue which overwrites any previous value that could have been returned by errorcode() (etc.) after the attempted file open. ... phew! The bottom line is, if Level:Notify use the clarion errorcode() (etc.) functions, if Level:Fatal, use the GlobalErrors.GetErrorCode() My soap box is the following: The errorclass lets you get the errorcodes thru GlobalErrors.GetErrorCode() and will let you get the clarion or file errorcode but it falls way short of being able to provide the kind of information that the Throw methods display on the screen. Specifically, all the following fields ! %File -> FileName ! %Key -> KeyName ! %Error -> ERROR() string ! %ErrorCode -> ERRORCODE() ! %FileError -> FILEERROR() ! %FileErrorCode -> FILEERRORCODE() ! %Message -> User define message ! %Field -> Fieldname ! %ErrorText -> %FileError(%FileErrorCode) ! %Previous -> Whatever the previous incarnation of this error said ! %Procedure -> Current procedure name ! %Category -> The category of the error I have a process that MUST run silent and it would nice to have access to all of these just like the ErrorClass.SubsString method does so that my error logging could be more thorough.


Today is November 23, 2024, 3:27 am
This article has been viewed 35241 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: