Puisque tu as l'air de savoir à l'appel de la fonction quel est le type d'exception à lancer tu pourrait passer une factory à cette fonction à la volée avec une lambda :
1 2 3 4 5 6 7
| public void controleIntField(int? nombre, Func<string, Exception> factory) // une fonction qui prend en paramètre une string et renvoie une exception
{
if (!nombre.HasValue)
{
throw factory("Le champ est obligatoire !");
}
} |
L'appel :
controleIntField(field, s => new RequiredFieldException(s));
Ceci-dit, pourquoi as-tu besoin de changer le type d'exception lancée par ta fonction ?
Partager