Bonjour tout le monde,

Ma question porte sur la gestion des erreurs. J'ai le code suivant (pas la peine de vous cassez la tête à le comprendre) :

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
56
57
58
59
60
61
62
63
foreach (object obj in inboxFolder2.Items)
                {
                    MailItem item = obj as MailItem;
 
                    if (item != null & !item.Subject.ToLower().Contains("erratum"))
                    {
                        if (item.ReceivedTime >= DateTime.Today)
                        {
                            Dictionary<String, int> index = new Dictionary<string, int>();
                            int pos = 0;
                            string result = "";
                            String[] ElementsToSearch = new String[] { "ouverture", "open", "suite", "relance", "follow", "reminder", "fermeture", "closed", "closure" };
 
                            foreach (String s in ElementsToSearch) // On boucle sur tous les éléments
                            {
                                pos = item.Subject.ToLower().IndexOf(s); // Insertion de la position dans l'index
                                if (pos != -1)                       // Si on trouve on insert
                                    index.Add(s, pos);
                            }
                            if (index.Count <= 0) // Si rien trouvé
                                result = "";
                            else
                                result = index.OrderBy(i => i.Value).First().Key; // On retourne le premier dans la chaine
 
                            if (result == "ouverture" | result == "open")
                            {
                                ouverture++;
                            }
                            if (result == "suite" | result == "relance" | result == "follow" | result == "reminder")
                            {
                                suite++;
                            }
                            if (result == "fermeture" | result == "closed" | result == "closure")
                            {
                                fermeture++;
                            }
 
                            if (item != null & item.ReceivedTime >= DateTime.Today)
                            {
                                for (int i = 0; i < dataContext.DT.Rows.Count; i++)
                                {
                                    if (item == null) { }
                                    else if (item.Subject.ToLower().Contains(dico[0, i].ToLower())) //S'il dans la gridview
                                    {
                                        int t = 0;
                                        if (dico[1, i] == null) { t = 0; }
                                        else
                                        {
                                            t = Int32.Parse(dico[1, i]);
                                        }
                                        t++;
                                        dico[1, i] = t.ToString();
                                    }
                                }
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
Si vous ne comprenez pas le code ce n'est pas très grave. Mais il lève une erreur "NullPointerException" j'ai donc ajouté cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
try
            {
             foreach (object obj in inboxFolder2.Items)
             [...]
            }
catch
            {
            }
Mes questions :

- Est ce que toutes les exceptions seront levés (et pas seulement null)?
- Une fois l'erreur levée on passe à la suite ou je peux retourne dans mon try?

Merci d'avance,