On Wed, May 29, 2013 at 02:01:59PM +0200, Matthieu Moy wrote: > > I wonder if we can do something like: > > > > our $mw_operation; > > $mediawiki->{config}->{on_error} = sub { > > [...] > > die "$err\n"; > > }; > > Probably, but that would hardcode the fact that mediawiki errors are > fatal, while in an ideal world, some errors should be recoverable, and > some would require some cleanups before die-ing.
Fortunately this is perl, not C. We can catch and re-throw die exceptions like: my $mw_pages = eval { $mediawiki->list(...) }; if (!$mw_pages) { # possibly continue to something else, or even... clean_up(); die; # propagate $@ } but it would require checking all of the call-sites. Another alternative would be a wrapper function that each caller could opt into. But I suspect the norm will be to die, so the exception model should make the code cleaner. > Also, an error during the first mediawiki operation should not > necessarily have the same diagnosis hint as the others: if I just > did a successfull querry, and the next fails, it can hardly be an SSL > certificate error. Yeah, my error template was just a sketch; I didn't look too carefully at all of the callers, but the concept should be extensible. > I'll send a v2 that covers a bit more (at least, push and pull with an > invalid certificate both give the message). Thanks. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html