Hi Bremner, all-- On Mon 2020-06-29 22:14:07 -0300, David Bremner wrote: > I know that some of you are not C++ fans, but at the moment this is > the cleanest fix I can think of to uncaught xapian exceptions causing > calls to the library to die. Floris reminded me of this recently with > the discussion about operations on closed databases, but cleaning up > the handling of exceptions in libnotmuch has been on my mind for a > while. It will be bit laborious so I did a few functions for > discussion purposes before getting too carried away. I've read through the series and it looks reasonable to me. I've also tested them, and they behave as expected. If someone has a more nuanced approach to dealing with some of the subtle exceptions that might be raised, i'd be happy to see those approaches laid on top of this series. > There is still a certain amount of boilerplate with more or less > identical try/catch blocks (yes, I really miss scheme macros here). I > could mostly eliminate that with C++11 lambdas, but I wasn't sure the > result was more maintainable or nicer. I think this looks fine, and it isn't a huge amount of boilerplate. Please merge. --dkg