Boost logo

Boost :

From: Christopher Kohlhoff (chris_at_[hidden])
Date: 2005-12-12 19:45:27


Hi Giovanni,

--- "Giovanni P. Deretta" <gpderetta_at_[hidden]> wrote:
<snip>
> I've done exactly that in my network library (although it does
> support only synchronous behaviour). An optional error
> handler functor is passed to every functions that can generate
> an error. If no handler is passed a default handler is used
> that converts errors in exceptions. It works quite well. The
> user need to explicitly check for errors only if it wants to,
> else exceptions are used.

In fact asio uses what sounds like exactly the same approach
for the synchronous functions. E.g.

  sock.write_some(bufs, asio::throw_error());

  sock.write_some(bufs, asio::ignore_error());

  asio::error error;
  sock.write_some(bufs, asio::assign_error(error));

  sock.write_some(bufs, custom_error_handler);

The default is also to convert the error into an exception.

Cheers,
Chris


Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk