The alternative is: do the cleanup at every return,
use goto or use
try/finally.
1)Cleanup at every return is madness. Most functions in ros do a large
amount of cleanup at each return and I sometimes spot mistakes where
one/more return misses some cleanup. Those errors are _hard_ to find.
The functions are too large then. Use more smaller functions instead.
Casper