I agree with the second to last recommendation:
> rking's personal recommendation is to go ahead and use set -e, but beware of possible gotchas. It has useful semantics, so to exclude it from the toolbox is to give into FUD.
Manual error handling would be ideal but it's too easy for me to mess up and miss something. Plus, if you really wanted to catch everything with proper error handling you would need to wrap every command in your script.