Personnaliser une exception
reBonjour,
Je cherche à personnaliser un message d'exception en fonction de différents différents paramètres et je me heurte à une petite (?) difficulté. Voilà mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
throw new EntreeSortieException();
}
catch (EntreeSortieException entreeSortieException)
{
MessageBox.Show(entreeSortieException.Message);
}
try
{
throw new EntreeSortieException("Message personnalisé");
}
catch (EntreeSortieException entreeSortieException)
{
MessageBox.Show(entreeSortieException.Message);
}
}
}
public class EntreeSortieException : Exception
{
public EntreeSortieException()
: base("Message défini dans la classe")
{
}
public EntreeSortieException(string message)
: base(message)
{
}
public EntreeSortieException(string message, Exception inner)
: base(message, inner)
{
}
protected EntreeSortieException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
}
} |
Mon application gère différents langages (anglais, français, russe, etc.)
Je dois donc ajuster chaque message d'erreur en fonction de la langue utilisée.
Je pensais donc modifier le texte du message dans
Code:
1 2 3 4 5 6
|
public EntreeSortieException(string message)
: base(message)
{
message = "message traduit";
} |
Mais ça ne fonctionne pas puisqu'a ce moment là, le message est déjà utilisé par base:(message).
Pour l'instant, j'ai donc inclus la fonction de traduction dans l'appel à base.
Par exemple dans une autre exception:
Code:
1 2 3 4 5 6 7
|
public class InvalidFolderException : Exception
{
public InvalidFolderException(string folderName)
: base( "{0} : " + string.Format( Locale._("invalid folder exception!") , folderName) )
{ }
} |
Le problème c'est que ça fait vite des paramètres illisibles.
Alors je me dis que j'ai peut-être loupé une étape importante dans mon apprentissage de cette chose là. Il doit bien y avoir moyen de modifier mon message à ce niveau sans le faire dans le paramètre, non ?
Votre avis sur la question ? :D
Papy