Bien le bonjour et bravo à tous les contributeurs de ce forum qui me sert enormement dans mon travail...

Je ne suis pas un pro des templates et donc je me pose une question: comment implementer la classe TraceAndReThrowStrategy pour qu elle prenne en compte n importe quel type d exception passée au handler generique ?

J'avais pensé au début faire quelque chose comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public class TraceAndReThrowStrategy : IErrorHandlingStrategy < Exception >
{
  public void Handle (Exception _exception_in)
  {
     // du code
  }
}
Et plus tard d'appeler mon handler en faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
try { ... }
catch (IOException ex)
{
  ExceptionHandler<Exception, TraceAndReThrowStrategy> hdler = new ExceptionHandler<Exception, TraceAndReThrowStrategy>();
 
  // cast
  hdler.Handle( (Exception) ex);
}
Ca marche mais c est pas terrible car je perds le detail de mon exception lors du cast.

De plus j'aimerais pouvoir avoir un traitement different par type d exception, par exple pouvoir tracer la requete SQL dans le cas d une SQLException (si ca existe), le nom du fichier pour une IOException, le Exception.Message dans le cas general, etc.

Je ne vois vraiment pas comment rendre TraceAndReThrowStrategy generique à son tour tout en gardant la syntaxe de l article à savoir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ExceptionHandler hdler = new ExceptionHandler < IOException,TraceAndReThrowStrategy >();
	hdler.handle(ex);
Merci d'avance pour votre aide, j avoue que je m arrache un peu les cheveux