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:
Mon application gère différents langages (anglais, français, russe, etc.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) { } }
Je dois donc ajuster chaque message d'erreur en fonction de la langue utilisée.
Je pensais donc modifier le texte du message dans
Mais ça ne fonctionne pas puisqu'a ce moment là, le message est déjà utilisé par base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public EntreeSortieException(string message) : base(message) { message = "message traduit"; }message).
Pour l'instant, j'ai donc inclus la fonction de traduction dans l'appel à base.
Par exemple dans une autre exception:
Le problème c'est que ça fait vite des paramètres illisibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class InvalidFolderException : Exception { public InvalidFolderException(string folderName) : base( "{0} : " + string.Format( Locale._("invalid folder exception!") , folderName) ) { } }
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 ?
Papy
Partager