Added Typed exceptions

Hey there!

I recently tried to try and catch around a transmission and noticed that the exceptions weren't typed. In my case it would have helped, as a lot of the project's other parts also throw exceptions that are based on Runtime and InvalidArgument.
So I added some Exception types :) Changes should be Backwards compatible.

Let me know what you think!