first pass for new error handling infrastructure
Merge pull request #420 from danhyun/master

Issue #413 - Improve Error Handling Infrastructure