On Thu, 2003-03-20 at 10:03, Michael Bell wrote:

> We use a different behaviour. If there is something going wrong during 
> initialization then we don't return the object. This is the best way to 
> signal a user that new doesn't work correctly. If for example a sql 
> database is not running and you call OpenCA::DBI->new then new returns 
> undef to avoid any usage of the object but the user can check the 
> errorcode and errormessage.

totally agreed.

> It is not a secret that it doesn't look nice but it is the most robust 
> way. Would it help you if we have errval and errno package-based and 
> object-based? $OpenCA::OpenSSL::errno contains the last error and 
> $cryptoShell->{errno} or perhaps better $cryptoShell->errno 
> contains/returns the last error of the object.

I think the two way method is a good one, but should the user be the one
to choose to ask the class or the instance, since there is a clear
dinstincion between a constructor and a instance method.

> What do you think? We are open for constructive criticism at every time.

I think the DBI approach is clean and intuitive:

- the users selects via a argument in new or via a dedicated function if
he wants errors to be displayed on stderr and if he wants the function
to return undef on error or just DIE. (RaiseError / PrintError)

- the methods call a set_err in a similar fashion as you do, and inside
it decides to die() or not and to warn() or not, of course after setting
instance and class error status.

- also there is a trace control which is similar to the debug behaviour,
but with finer control.

I think the best point is the ability to control how errors are handled,
so I can, for example, not check errors at all and let the functions
die() on me.

What do you think?



-------------------------------------------------------
This SF.net email is sponsored by: Tablet PC.  
Does your code think in ink? You could win a Tablet PC. 
Get a free Tablet PC hat just for playing. What are you waiting for? 
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr5043en
_______________________________________________
OpenCA-Devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/openca-devel

Reply via email to