The difference is that Control.Exception gives you more flexibility for catching and reporting what happened.
Such exceptions can only be caught in the IO monad, which could place a burden on your client.