Gérer une erreur dans un VB.net
Résolu/Fermé
jojorealisateur
Messages postés
203
Date d'inscription
jeudi 9 mars 2017
Statut
Membre
Dernière intervention
8 juillet 2020
-
24 juil. 2018 à 00:03
Whismeril Messages postés 19144 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 septembre 2024 - 25 juil. 2018 à 23:45
Whismeril Messages postés 19144 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 septembre 2024 - 25 juil. 2018 à 23:45
A voir également:
- Gérer une erreur dans un VB.net
- Erreur 0x80070643 - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Guide
- Erreur 1001 outlook - Guide
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Une erreur inattendue s'est produite instagram ✓ - Forum Instagram
4 réponses
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
24 juil. 2018 à 16:49
24 juil. 2018 à 16:49
Bonjour,
Le Try ... Catch ne fonctionne pas ?
K
Le Try ... Catch ne fonctionne pas ?
K
Whismeril
Messages postés
19144
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2024
919
24 juil. 2018 à 19:12
24 juil. 2018 à 19:12
Bonjour
manifestement le problème se situe dans Form3.Button2_Click(Object sender, EventArgs e)
à la ligne 18 du fichier Form3.vb ou dans "l'instruction" lancée à cette ligne.
Il faudrait que tu mettes un point d'arrêt un peu avant, que tu exécutes en pas à pas pour observer le contenu des variables et le comportement de l'exécution, afin de voir comment gérer l'annulation par l'utilisateur.
Voir ici
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/debugger/debugger-basics?view=vs-2015&redirectedfrom=MSDN
Ensuite, poste ton code, avec la coloration syntaxique (procédure détaillée là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Explique ce qui se passe, et quel est le contenu des variables au moment du bug.
Comme le dit Kalissi, une clause Try sera peut-être la solution
manifestement le problème se situe dans Form3.Button2_Click(Object sender, EventArgs e)
à la ligne 18 du fichier Form3.vb ou dans "l'instruction" lancée à cette ligne.
Il faudrait que tu mettes un point d'arrêt un peu avant, que tu exécutes en pas à pas pour observer le contenu des variables et le comportement de l'exécution, afin de voir comment gérer l'annulation par l'utilisateur.
Voir ici
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/debugger/debugger-basics?view=vs-2015&redirectedfrom=MSDN
Ensuite, poste ton code, avec la coloration syntaxique (procédure détaillée là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Explique ce qui se passe, et quel est le contenu des variables au moment du bug.
Comme le dit Kalissi, une clause Try sera peut-être la solution
jojorealisateur
Messages postés
203
Date d'inscription
jeudi 9 mars 2017
Statut
Membre
Dernière intervention
8 juillet 2020
18
25 juil. 2018 à 13:06
25 juil. 2018 à 13:06
Bonjour,
Il faut savoir que j'utilise uniquement
L'utilisateur peut aussi lancer d'autres fichiers qui ne sont pas de base en administrateur, mais qui sont lancés en tant que tel via ce code :
J'ai essayé autre chose : lorsque je clique droit sur mon logiciel compilé et que je le lance entièrement en administrateur, il ne demande aucune confirmation UAC. J'ai donc essayé d'aller changer le paramètre
Que dois-je faire pour supprimer cette erreur ?
Merci !
Jojorealisateur
Il faut savoir que j'utilise uniquement
Process.start ("CHEMINDACCES")pour lancer ce fichier qui est de base automatiquement en administrateur.
L'utilisateur peut aussi lancer d'autres fichiers qui ne sont pas de base en administrateur, mais qui sont lancés en tant que tel via ce code :
Try. Lorsque j'utilise ce code, si l'utilisateur clique sur "Non", il n'y a qu'une petite "MsgBox" qui s'ouvre et qui dit "L'opération a été annulée par l'utilisateur.". Ce n'est pas dérangeant...
Dim procInfo As New ProcessStartInfo()
procInfo.UseShellExecute = True
procInfo.FileName = (CHEMINDACCES)
procInfo.WorkingDirectory = ""
procInfo.Verb = "runas"
Process.Start(procInfo)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
J'ai essayé autre chose : lorsque je clique droit sur mon logiciel compilé et que je le lance entièrement en administrateur, il ne demande aucune confirmation UAC. J'ai donc essayé d'aller changer le paramètre
requestedExecutionLevel level="requireAdministrator" uiAccess="false"pour que tout se lance en administrateur. Le problème, c'est que lorsque je le génère, il y a apparemment une erreur avec ClicOnce. Pourtant, je ne l'utilise pas...
Que dois-je faire pour supprimer cette erreur ?
Merci !
Jojorealisateur
Whismeril
Messages postés
19144
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2024
919
25 juil. 2018 à 13:28
25 juil. 2018 à 13:28
Qu'il y ait une messageBox c'est normal, c'est ce que tu lui a demandé à ton code.
Et là en l'état, ça ne doit pas affecter la suite du programme.
On peut faire en sorte que le messageBox ne s'affiche pas dans ce cas là.
Il faut mettre plusieurs catch en fonction du type de l'erreur, voir exemples ici
https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement
PS: je constate que tu n'as pas lu ou appliqué le tuto sur les balises de codes. Je suis feignant quand il s'agit d'aider bénévolement : la prochaine fois, je ne lirais pas.
Et là en l'état, ça ne doit pas affecter la suite du programme.
On peut faire en sorte que le messageBox ne s'affiche pas dans ce cas là.
Il faut mettre plusieurs catch en fonction du type de l'erreur, voir exemples ici
https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement
PS: je constate que tu n'as pas lu ou appliqué le tuto sur les balises de codes. Je suis feignant quand il s'agit d'aider bénévolement : la prochaine fois, je ne lirais pas.
Whismeril
Messages postés
19144
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2024
919
25 juil. 2018 à 13:29
25 juil. 2018 à 13:29
Pour clickonce je ne sais pas
jojorealisateur
Messages postés
203
Date d'inscription
jeudi 9 mars 2017
Statut
Membre
Dernière intervention
8 juillet 2020
18
25 juil. 2018 à 22:35
25 juil. 2018 à 22:35
Bonjour,
Je suis désolé pour les balises, je ne trouve pas "VB" ou "Visual Basic" ou quelque chose qui y ressemble... La seule chose que je vois, c'est "Basic", mais c'est un tout autre langage, non ?
Lorsque vous parlez de "Try" et de "Catch", je ne comprends pas... Comment devrais-je arranger le code pour les y insérer ?
La MsgBox ne me dérange pas du tout... Je me demandais juste si ça n'arrangerai pas les choses d'utiliser le code à la place de (désolé pour les balises)
Je vais essayer et je vous donne le résultat...
Merci et encore désolé pour les balises...
Jojorealisateur
Je suis désolé pour les balises, je ne trouve pas "VB" ou "Visual Basic" ou quelque chose qui y ressemble... La seule chose que je vois, c'est "Basic", mais c'est un tout autre langage, non ?
Lorsque vous parlez de "Try" et de "Catch", je ne comprends pas... Comment devrais-je arranger le code pour les y insérer ?
La MsgBox ne me dérange pas du tout... Je me demandais juste si ça n'arrangerai pas les choses d'utiliser le code à la place de (désolé pour les balises)
Process.Start ("CHEMINDACCES")...
Je vais essayer et je vous donne le résultat...
Merci et encore désolé pour les balises...
Jojorealisateur
Whismeril
Messages postés
19144
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2024
919
Modifié le 25 juil. 2018 à 23:16
Modifié le 25 juil. 2018 à 23:16
Pour la coloration basic c'est bon.
Il y a plusieurs interprétations à cette phrase....
L'une d'elles suppose que tu as pris ce code quelque part, sans le comprendre et que tu espères en le bidouillant finir par faire ce que tu veux. Si c'est le cas, et bien le meilleur conseil que je puisse te donner, est de laisser ton projet de coté quelques jours afin de suivre ce cours https://plasserre.developpez.com/cours/vb-net/ il te donnera les bases pour ensuite reprendre ton projet plus sereinement.
Si ça n'est pas le cas, soit plus clair dans ta demande, car
Lorsque vous parlez de "Try" et de "Catch", je ne comprends pas... Comment devrais-je arranger le code pour les y insérer ?
Il y a plusieurs interprétations à cette phrase....
L'une d'elles suppose que tu as pris ce code quelque part, sans le comprendre et que tu espères en le bidouillant finir par faire ce que tu veux. Si c'est le cas, et bien le meilleur conseil que je puisse te donner, est de laisser ton projet de coté quelques jours afin de suivre ce cours https://plasserre.developpez.com/cours/vb-net/ il te donnera les bases pour ensuite reprendre ton projet plus sereinement.
Si ça n'est pas le cas, soit plus clair dans ta demande, car
La MsgBox ne me dérange pas du tout... Je me demandais juste si ça n'arrangerai pas les chosesça manque un peu cohérence. Le message ne te pose pas de problème, le programme devrait continuer à fonctionner (en tout cas c'est ce qu'indique ton code et tu n'as pas dit qu'il y a avait un autre programme)
jojorealisateur
Messages postés
203
Date d'inscription
jeudi 9 mars 2017
Statut
Membre
Dernière intervention
8 juillet 2020
18
25 juil. 2018 à 23:36
25 juil. 2018 à 23:36
Bonjour,
Excusez-moi, je n'ai effectivement pas été très clair dans ma réponse...
Effectivement, j'ai pris ce code quelque part, mais je le comprends... J'ai commencé ce projet dans mes débuts en VB.net et je l'ai repris seulement maintenant. À l'époque, je ne savais pas comment faire pour démarrer un fichier en tant qu'administrateur... Depuis, ça va... ;-)
Lorsque je dis que la MsgBox ne me dérange pas, c'est parce que vous souligniez sa présence... C'est tout à fait normal qu'elle soit là...
Finalement, j'ai essayé de remplacer le
Merci pour votre aide... Et désolé pour les balises...
Jojorealisateur
Excusez-moi, je n'ai effectivement pas été très clair dans ma réponse...
Effectivement, j'ai pris ce code quelque part, mais je le comprends... J'ai commencé ce projet dans mes débuts en VB.net et je l'ai repris seulement maintenant. À l'époque, je ne savais pas comment faire pour démarrer un fichier en tant qu'administrateur... Depuis, ça va... ;-)
Lorsque je dis que la MsgBox ne me dérange pas, c'est parce que vous souligniez sa présence... C'est tout à fait normal qu'elle soit là...
Finalement, j'ai essayé de remplacer le
Process.Start ("CHEMINDACCES")(voilà pour les balises ;-)) par le code
Try Dim procInfo As New ProcessStartInfo() procInfo.UseShellExecute = True procInfo.FileName = (CHEMINDACCES) procInfo.WorkingDirectory = "" procInfo.Verb = "runas" Process.Start(procInfo) Catch ex As Exception MessageBox.Show(ex.Message.ToString()) End Tryet ça marche. Lorsque l'utilisateur clique sur "Non" avec la fenêtre UAC, la MsgBox s'affiche au lieu de la boîte d'erreur de Windows...
Merci pour votre aide... Et désolé pour les balises...
Jojorealisateur
Whismeril
Messages postés
19144
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2024
919
25 juil. 2018 à 23:45
25 juil. 2018 à 23:45
Ha ok, comme ton premier message parlais d'un message d'erreur et que ton code montre un MessageBox dans un catch, bêtement, j'ai pensé qu'il s'agissait du même message.