}
@Override
public <T extends Throwable> T exception(Class<T> clazz) {
if (throwable == null) {
throw new HandlerExceptionNotThrownException();
} else {
if (clazz.isAssignableFrom(throwable.getClass())) {
return clazz.cast(throwable);
} else {
throw new UnexpectedHandlerException(throwable);