fév.
2010
Java Quiz #33
La classe ci-dessous part d'une bonne intention, mais où est le problème ?
/** * Garantit que les éventuelles exceptions levées par la méthode dangereuse * seront loggées. * @param <R> Le type de retour de la méthode * @param <E> Le type d'exception levé */ public abstract class ExceptionLoggingExecutor<R, E extends Throwable> { private final Logger logger = Logger.getLogger(ExceptionLoggingExecutor.class.getName()); public final R execute(Object... args) throws E { try { return dangerousOperation(args); } catch (E e) { logger.error(e); throw e; } } /** La méthode contenant le code dangereux */ protected abstract R dangerousOperation(Object... args) throws E; }