void
Handle::RegisterCloseError( std::auto_ptr<Gnome::Vfs::exception> error )
{
//store error handle somewhere
}
Handle::~Handle()
{
if( gobj() )
close( 'stored error handle' ) ;
}
And, not to be a stickler, but throwinig errors from a destructor is a Bad Idea (TM).
See: http://www.parashift.com/c++-faq-lite/exceptions.html#faq-17.3
So really, regardless of whether exceptions are enabled, this might need to be looked at.
Paul
On 10/25/06,
Murray Cumming <[EMAIL PROTECTED]> wrote:
On Wed, 2006-10-25 at 10:35 -0500, Matt Hoosier wrote:
> Good idea. What's the preferred way to handle situations like this:
>
> Handle::~Handle()
> {
> if(gobj())
> close(); // This may throw an exception
> }
>
> There's not really an opportunity to pass back the auto_ptr<exception>
> in this case. Should we just do:
>
> Handle::~Handle()
> {
> if(gobj())
> {
> std::auto_ptr<Gnome::Vfs::exception> error;
> close(error);
> }
> }
>
> and ignore the fact that the error may be set?
I think that's the only way. I can't see how we could do anything else
during a destructor.
--
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list
_______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
