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, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk