[Gambas-user] Custom error class

Jesus Guardon jguardon at ...2035...
Wed Dec 16 22:10:16 CET 2009


Benoît Minisini escribió:
>> Hi all
>>
>> Perhaps this is an stupid question, but I'm confused at this point:
>>
>> I'm trying to implement a custom error message window with information
>> about an error raised within a CATCH clause, using the Error class from
>> Gambas. Here is the code I'm not able to get it working:
>>
>> _The error form 'FError'_
>>
>> PRIVATE $error AS String
>>
>> PUBLIC SUB Form_Open()
>>     ME.Center
>>     txtError.Clear
>>     txtError.Text = $error
>> END
>>
>> PUBLIC SUB showError(myError AS Error)
>>     $error &= "[Error]\n" & myError.Text
>>     $error &= "\n[Where]\n" & myError.Where
>>     $error &= "\n[Backtrace]\n" & myError.Backtrace
>>     ME.ShowModal
>> END
>>
>> PUBLIC SUB btnOk_Click()
>>     IF chkReport THEN
>>     ' TODO report error to a remote db
>>     ENDIF
>>     ME.Close
>> END
>>
>> _Calling in a sub after CATCH_
>>
>> CATCH
>>     FEerror.showError(Error)
>>
>> -----
>>
>> First of all, it is not possible to write "Error" keyword between the
>> two parenthesis, being formatted into "ERROR", syntactically wrong.
>>
>> If I enclose the 'Error' keyword between curly brackets, as in
>> FErrors.showError({Error}) , no syntax error is raised, but a Gambas
>> error saying "Type mismatch: wanted Error, got Class instead".
>>
>> What am I doing wrong, or is it possible to use this class the way I'm
>> doing?
>>
>> Help appreciated!
>>
>> Regards,
>>
>> Jesús
>>
> 
> At the moment Error is a static class, you cannot instanciate it, and using it 
> as a datatype is uselss. So don't use an argument, use the Error class 
> everywhere.
> 
> The caveats of this design is that should save or use the Error class contents 
> as soon as possible, otherwise another error or a function call may reset it.
> 
> Regards,
> 

Mmmmm, I though so... I was trying to encapsulate it in a single
function, but I must reconsider this in other way.

Thanks anyway!

Regards,

Jesús




More information about the User mailing list