Catch Throwable because some runtimes may throw exceptions which do not extend Exception (eg. Android)