Catch uncaught exceptions and trigger `onError` when triggered

Closes #2.
Allow errors to be communicated `onResult`

Closes #1.
0.4.2