Casper Hornstrup wrote:
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.
I agree with Nathan. Having tons of small functions often isn't a good
solution, especially when you'd have to create dozens of small helper
functions. That not just only generates slower code but also makes it
more difficult to get a picture of the algorithm used. I much more
prefer jumping to cleanup labels the way Nathan demonstrated it. Of
course I avoid it where it doesn't make sense.
- Thomas