Handler Generique d'Exceptions
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:
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:
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:
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 ;)