3 ms·
You're the first person i've heard of who falls back to C++, if that data point is of any value. AIUI exceptions and RAII are mutually exclusive in C++. I don'
by CraigJPerry 13y ago
You're the first person i've heard of who falls back to C++, if that data point is of any value.
AIUI exceptions and RAII are mutually exclusive in C++. I don't know enough about C++ so i wouldn't be surprised to find out this is wrong.
- archangel_one 13y agoExceptions and RAII match well, actually. Managing resources via RAII means that when an exception is thrown, the destructors of local objects are invoked so they'll release resources they've acquired. In fact, I'd argue that you very often have to use RAII with exceptions, since there's no 'finally' block on a try-catch statement and hence it's the easiest way to ensure stuff gets cleaned up (well, except for catch(...) and rethrowing, but that's kinda ugly).
- eliasmacpherson 13y agocorrect me if I am wrong but you can't rethrow in a destructor and hence RAII is required if you are using exceptions - because the cleanup and reporting work must be done in the destructor - unless you use global state to track failures and check after every attempted release of a resource i.e. C error checking.
- jacobparker 13y ago> AIUI exceptions and RAII are mutually exclusive in C++ That is... very wrong. Exceptions are perilous unless you use RAII religiously (which you should; it's good.) For more information, read up on RAII and search for "exception safety." The definition of C++ RAII from Wikipedia: "In this language, if an exception is thrown, and proper exception handling is in place, the only code that will be executed for the current scope are the destructors of objects declared in that scope". Without this it is very hard to reap any benefits of exceptions (people have disagreements on what those are, if any, but that's another topic).
- CraigJPerry 13y agoUp-voted a few of the others below too. I also found this which I thought was a high quality summary: http://www.parashift.com/c++-faq-lite/ctors-can-throw.html http://www.parashift.com/c++-faq-lite/ctors-can-throw.html
- pjmlp 13y ago> You're the first person i've heard of who falls back to C++, if that data point is of any value. Every time I write C code is at a gun point of being forced to do so. When I have the choice between C++ and C, I always pick up C++.
- cldr 13y agoNot sure what AIUI means, but the very words "exception-safe" usually imply RAII.
- berkut 13y agoI've tried several times to write new projects of mine from scratch in C just for a challenge, and have gone back to C++ every time.