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 :
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 public class TraceAndReThrowStrategy : IErrorHandlingStrategy < Exception > { public void Handle (Exception _exception_in) { // du code } }
Ca marche mais c est pas terrible car je perds le detail de mon exception lors du cast.
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); }
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 :
Merci d'avance pour votre aide, j avoue que je m arrache un peu les cheveux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ExceptionHandler hdler = new ExceptionHandler < IOException,TraceAndReThrowStrategy >(); hdler.handle(ex);![]()
Partager