stop throwing or catching Throwable

This PR replaces all catched or thrown `Throwable` by an `Exception`.

Since `Error` extends `Throwable`, `Throwable` should never be catched.  ("An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch") @see http://docs.oracle.com/javase/7/docs/api/java/lang/Error.html.

I did not replace `Throwable` when it's used as a method parameter, even thought this usage is questionable too.