3 votes

Gérer toutes les exceptions non traitées

Est-il possible de gérer (l'écriture d'un journal simple) toutes les exceptions non gérées?

Plus en détail, j'ai besoin de journaliser toute exception qui se produit n'importe où dans le code, journaliser l'exception puis continuer (ce qui pourrait entraîner bien sûr davantage d'exceptions!).

5voto

Roger Lindsjö Points 6514

Vous pouvez utiliser un gestionnaire d'exceptions non interceptées par défaut pour attraper toutes les exceptions non gérées.

Il est également possible de définir un gestionnaire spécifique par thread ou groupe de threads.

1voto

Kai Sternad Points 7676

Vous pourriez utiliser AOP (Aspect Oriented Programming) pour cela. Plus précisément, vous pourriez créer un aspect qui enregistre toutes les exceptions.

Si vous utilisez Spring, vous pouvez utiliser l' Annotation Conseil AfterThrowing pour cela.

0voto

android developer Points 20939

Voici un morceau de code qui pourrait vous aider :

public class MyDefaultExceptionHandler extends DefaultExceptionHandler
  {

  private UncaughtExceptionHandler defaultUEH;

  public MyDefaultExceptionHandler() 
    {
    this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
    }

  @Override
  public void uncaughtException(Thread t, Throwable e) 
    {
    //imprimez tout ce que vous souhaitez sur Throwable e : getStackTrace(), getCause(), getClass()...
    defaultUEH.uncaughtException(t, e); //cela appellera la gestion par défaut de l'exception (crash...)
    }
  }
… 
//dans l'application principale :
Thread.setDefaultUncaughtExceptionHandler(new MyDefaultExceptionHandler());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X