Multiple catch blocks would be better here, eg:

```java
  ...
} catch (Error e) {
  throw e;
} catch (RuntimeException re) {
  throw re;
} catch (Throwable t) {
  throw new RuntimeException(t);
} finally {
  ...
```