Exception URI <- Comment la regler ?

Signaler
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
-
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
-
Salut,


j'ai suivi un tutorial intégré dans le service d'aide C# 2005 Express.


Voici le lien : ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.fr/dv_csexpresscon/html/250618a0-c5f5-4c68-86bf-4fb970220992.htm


Une foi le tutorial réalisé en entier j'ai appuyé sur F5 et je n'ai eu aucune ereur


Sauf que quand j'appuie sur le bouton OK j'ai une Exception :


URI non valide : Impossible de déterminer le format de l'URI.


Le message m'indique une ligne de code :

        private void goButton_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString()));
        }

Le problème est que je n'ai aucune idée comment régler ce problème.

Si vous savez comment faire ça serait sympa de m'aider

Merci d'avance.

9 réponses

Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
2
"- Est ce que tu veux savoir comment faire pour gérer ce genre d'exception lorsque les données manipulées ne sont pas correctes ?"


Oui c'est le but de ma question.



"- Est ce que tu veux savoir comment faire pour tester le programme sans qu'il plante (si oui : trouve le combo box "comboBox1" et a l'execution, rentre une URL ou un path de fichier valide, sélectionne le et clique sur le button "gobutton")"


Deja tenté, la même Exception est apparue.



"- Est ce que tu comprends ce que tu fais?"


Oui je comprend toutes les lignes de codes sauf celle la où j'ai un petit problème pour comprendre.


Le
truc est que je voudrais savoir comment résoudre le problème tout en
sachant comment j'ai fait et pourquoi il y avait un problème

.
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
D'après ce code, tu prends le texte sélectionné dans un combobox et tu considere ca comme une adresse web que tu tentes d'afficher dans un web browser.

Quelques questions donc :
- Est ce que tu veux savoir comment faire pour gérer ce genre d'exception lorsque les données manipulées ne sont pas correctes ?
- Est ce que tu veux savoir comment faire pour tester le programme sans qu'il plante (si oui : trouve le combo box "comboBox1" et a l'execution, rentre une URL ou un path de fichier valide, sélectionne le et clique sur le button "gobutton")
- Est ce que tu comprends ce que tu fais?


Working as designed
www.nikoui.fr
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
D'après l'exception qui est levée, le problème vient du fait que tu fournis au webBrowser une URI non valide. Que saisis/sélectionnes tu dans le comboBox ?

Pour traiter cette erreur, tu peux faire comme cela :

        private void goButton_Click(object sender, EventArgs e)
        {
             try
            {
                webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString()));
             }
             catch(UriFormatException e
) // On gère les exception UriFormatException

             {
                // Ici le traitement en cas d'erreur sur l'URI
                MessageBox.Show(e.Message);
             }
        }


Working as designed
www.nikoui.fr
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
2
"D'après l'exception qui est levée, le problème vient du fait que tu
fournis au webBrowser une URI non valide. Que saisis/sélectionnes tu
dans le comboBox ?"

Je selection les Options que j'ai rentrer auparavent :

www.google.fr
www.msn.fr
etc ...

Apres avoir effectuer le "try" que vous m'avez donner j'ai eu la meme Exception.

URI non valide : Impossible de déterminer le format de l'URI.
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Le try n'enlèvera pas l'exception, il te permettra juste de la traiter (par exemple en affichant un message d'erreur à l'utilisateur). C'est la réponse à la question 1 : comment faire dans ton programme pour gérer les cas d'erreur.

Et en remplacant "www.google.fr" par "http://www.google.fr" ça change quelque chose ?


Working as designed
www.nikoui.fr
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
2
"Et en remplacant "www.google.fr" par "http://www.google.fr" ça change quelque chose ?"


Effectivement c'était la première chose que j'ai penssé à faire, mais non le résultat est le même.


"Le try
n'enlèvera pas l'exception, il te permettra juste de la traiter (par
exemple en affichant un message d'erreur à l'utilisateur)."


Je viens de rentrer le code Try et voilà qu'il m'affiche une autre ligne de code avec la même exception :

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());Avec comme exception :

URI non valide : Impossible de déterminer le format de l'URI.
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Juste pour vérifier :

Si tu remplaces :
webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString()));

Par :
string testUri = comboBox1.SelectedItem.ToString();
webBrowser1.Navigate(new Uri(testUri));

et que tu mets un point d'arrêt sur la ligne en gras, que vaut testUri lorsque tu debug ?


Working as designed
www.nikoui.fr
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
2
Sans Activer le point d'arret j'ai pour testUri :

testUri "www.google.fr"

Quand j'active le point d'arrete j'ai :

testUri null
Messages postés
75
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
1 décembre 2008
2
Sinon n'y a t-il pas d'autre moyen pour faire une barre d'adresse comme sur Internet Explorer ou Firefox ?


Une barre d'adresse qui affiche le lien de la page qui est affichée dans le webBrowser.


En vrai une barre d'adresse ayant toutes les fonctions d'internet Explorer.


Serai t'il possible d'effectuer ceci ?