Hi guys,

I'm currently spending some time documenting the AbstractIoService class, where the ExceptionMonitor instance is created. This class is just used to handle exception when they are uncaught :

/**
* Monitors uncaught exceptions.  [EMAIL PROTECTED] #exceptionCaught(Throwable)} 
is
* invoked when there are any uncaught exceptions.
*/
public abstract class ExceptionMonitor {
...


At least, this is what the Javadoc says ... But in fact, 'uncaught exception' does not make a lot of sense. Either we catch an exception, or not. If we don't catch it, there is no way to deal with it as an uncaught exception, because otherwise, it means it has been caught, and is not anymore uncaught ... :/

There is soemthing wrong in this logic. All over the code, we see things like :

try {
...
} catch (Throwable t) {
   ExceptionMonitor.getInstance().exceptionCaught(t);
}

Assuming that we are using the DefaultExceptionMonitor, this will simply log a warning in some log :

public class DefaultExceptionMonitor extends ExceptionMonitor {
private final Logger log = LoggerFactory.getLogger(DefaultExceptionMonitor.class);

   public void exceptionCaught(Throwable cause) {
       if (log.isWarnEnabled()) {
           log.warn("Unexpected exception.", cause);
       }
   }

Why don't we simply write :
try {
   ...
} catch (Throwable t) {
   log.warn("Unexpected exception.", t);
}

?

Now, the question is why do we allow a user to define it's own ExceptionMonitor to handle unhandled exceptions. As we are defining a framework, it does not make a lot of sense to disregard an exception and let the user define what to do with it, as the user will have _no clue_ about where those kind of exception might be produced (our users are not all supposed to go through MINA code).

So do we really need this class ? IMHO, this is a bad idea which has not been removed from the very first version (it comes far away : the class has been injected back in 2005, and was never derived since, if we except the default implementation.

wdyt ?

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to