make the second argument to throw properly optional
support errors and update docs
Merge pull request #334 from ianstormtaylor/add/throw-optional-status

Add/throw optional status