The documentation is very vague about what happens when an error occurs. When are exceptions thrown? When are error strings returned? When is an error hash returned?
For example, run_command is documented as returning a string on error. (I believe previous versions said an exception is thrown.) I have been told by other users that it can also return a hash containing a lastError object.
I'd really appreciate a thorough review of error handling behavior and documentation so that I can be more confident that I'm correctly handling errors in my code.