Re:Memory management in C programs (2014)
by yoklov on Tuesday July 19, 2016 @02:58AM
(#12120255)
Its not harder. You know exactly where that function can return, with exceptions its very hard to know what might throw in practice.
[ Parent
| on HN ]
With exceptions you can use something like scoped exit (http://www.boost.org/doc/libs/1_61_0/libs/scope_exit/doc/htm...) for automatic rollback and neat cleanup even in multilevel "transactions". With error codes, nothing happens automatically, hence it's easy to mess up cleanup/rollback.
Yes, you can still use RAII for rollback/cleanup in combination with error codes, but then you get the worst of both worlds: the (minor) complication of writing RAII classes AND code cluttered with manual error-checking.