Use throwIO instead of throw

(this gives better ordering guarantees)
Merge pull request #25 from zalora/use-throw-io

Use throwIO instead of throw