Simplify exception code and allow any Throwable as cause