Me ?
I just learned to use smart pointers (=RAII) which try/catch clauses only and in the other cases to use the copy, move constructor, the operator= and the destuctor if it's necessary. (It depends on the semantic of the class, if the class have interna pointers and if the values of the internal pointers have to be copied or not and if the class have to create or delete the pointers)
It avoids to have too much abstraction. (I really hate that. :/)
The only exemple when I use RAII.
Resource* r = new Resource();
std::unique_ptr<Resource>(r);
try {
} catch {
}
And the std:::shared_pointer if you pass the pointer to another function in the try catch blocks.