Asserts are made to check for clear incoherent behavior in a library. Something that just could not happen if the library is coded properly. They should check for things like function pre/post conditions. They are for library developers, not end users! A change in the wire format causing an assert is just not the proper way to handle the problem, since this is completely unrecoverable on the library user side.
This may be generalized to the fact that asserts should not be used for anything exterior to the library (such as the wire protocol). For instance, in a file management library, you don't want an assert to be triggered if there is no space left on the device: you want an error code! I cannot afford my whole program to crash, just because the broker on the other side was updated. Imagine the simple case of using 0mq to log some stuff. Would you accept that your whole program could crash at any time if someone update the log receiver on the other side? no way! You would want to just be able to disable the network logging, period. On Fri, Nov 16, 2012 at 11:23 AM, Martin Hurton <[email protected]> wrote: > > Can't even build something more robust top of 0mq, since most of the time > > the only internal error handling of 0mq is a rough assert. > > This is an internal error, what would you suggest instead? > - Martin > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > -- Aurélien Vallée +33 6 47 41 70 37
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
