VB: Afficher ses propres erreurs de création de formulaire
Résolu
Anonyme209
Messages postés
681
Date d'inscription
Statut
Membre
Dernière intervention
-
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai crée une application vb.
En dehors d'un "Sub" ou d'une Fonction, j'ai tapé
Et dans un sub:
Tout se déroule bien si le fichier existe, mais, si il n'existe pas, l'erreur
Je voudrais savoir comment faire pour que même si le fichier n'existe pas, démarrer l'application et par exemple afficher une
Je connais
Merci de votre aide.
J'ai crée une application vb.
En dehors d'un "Sub" ou d'une Fonction, j'ai tapé
Public test = System.IO.File.ReadAllText("C:\Test.txt")
Et dans un sub:
MsgBox(test)
Tout se déroule bien si le fichier existe, mais, si il n'existe pas, l'erreur
"Une erreur est survenue lors de la création du formulaire"s'affiche en mode déboguage, et
"L'application a cessé de fonctionner..."en mode "normal".
Je voudrais savoir comment faire pour que même si le fichier n'existe pas, démarrer l'application et par exemple afficher une
MsgBox("Le fichier n'existe pas!").
Je connais
On error GoTo erreurqui marche très bien à l'intérieur d'un sub, mais là, comme je l'ai dit, c'est à l'extérieur.
Merci de votre aide.
A voir également:
- VB: Afficher ses propres erreurs de création de formulaire
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
11 réponses
Bonjour,
C'est quel VB ? (VB6, VBA, VB.Net) ? Ça serait bien de le préciser, nous n'avons pas tous pris l'option "divination" dans notre cursus...
Il faut proscrire, autant que possible, les Goto dans un programme.
En VB6, il y a
En VB.Net, on utilise le Try ... Catch ... (http://msdn.microsoft.com/fr-fr/library/bb727317.aspx et https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement)
C'est quel VB ? (VB6, VBA, VB.Net) ? Ça serait bien de le préciser, nous n'avons pas tous pris l'option "divination" dans notre cursus...
Il faut proscrire, autant que possible, les Goto dans un programme.
En VB6, il y a
On Error Resume Next. On intercepte l'erreur s'il s'en produit une.
Sub test() On Error Resume Next MsgBox (test) If Err.Number <> 0 Then Mesbox ("Le fichier n'existe pas!") Exit Sub End If End Sub
En VB.Net, on utilise le Try ... Catch ... (http://msdn.microsoft.com/fr-fr/library/bb727317.aspx et https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement)
Visual Basic (Microsoft Visual Basic 2010)
Comme je vous l'ai dit, la variable public est définie à l'extérieur d'un sub.
Donc, pas moyen d'utiliser un "On error quelque chose"
Merci de votre aide.
Comme je vous l'ai dit, la variable public est définie à l'extérieur d'un sub.
Donc, pas moyen d'utiliser un "On error quelque chose"
Merci de votre aide.
Et je connais aussi Try... Catch... mais je vous l'ai déjà dit, c'est à l'extérieur d'un sub, et ça ne marche donc pas mieux que
On Error GoTo errorou encore
On Error Resume Next
Et pourtant ...
MsgBox(test) est bien dans un Sub ? Non ? c'est bien ce Sub qui appelle la variable public ? Non ?
Il faut mettre le Try... Catch... dans le Sub qui appelle la variable.
MsgBox(test) est bien dans un Sub ? Non ? c'est bien ce Sub qui appelle la variable public ? Non ?
Il faut mettre le Try... Catch... dans le Sub qui appelle la variable.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non:
On ne peut pas déclarer de variable public à l'intérieur d'un sub
En dehors d'un "Sub" ou d'une Fonction, j'ai tapé
Public test = System.IO.File.ReadAllText("C:\Test.txt")
On ne peut pas déclarer de variable public à l'intérieur d'un sub
Merci, mais je connais la différence entre une variable déclarée public ou local, par contre toi tu ignores comment ça fonctionne.
C'est dans ta Sub que tu utilises ta variable public. C'est donc dans la Sub que tu la gères.
C'est dans ta Sub que tu utilises ta variable public. C'est donc dans la Sub que tu la gères.
Je ne vois pas comment je peux la gérer alors que si le fichier n'existe pas, la variable n'est pas créée et le programme se ferme automatiquement en affichant une erreur.
Ta variable public est déclarée où ? dans une classe ? un module ?
Sinon, un exemple :
Dans un module, ma variable public
A l'ouverture du formulaire principale
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Sinon, un exemple :
Dans un module, ma variable public
Module Module1 Public test As String End Module
A l'ouverture du formulaire principale
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Module1.test = System.IO.File.ReadAllText("C:\Test.txt") MsgBox(Module1.test) Catch ex As Exception MsgBox("Le fichier n'existe pas !") End Try End Sub End Class
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Bonjour, voici les parties du code qui nous intéressent:
Public Class Form1 Public test = System.IO.File.ReadAllText("C:\Test.txt") Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MsgBox(test) End Sub End Class
Sinon, je vais essayer ta technique.
Public Class Form1 Public test Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try test = System.IO.File.ReadAllText("C:\Test.txt") MsgBox(test) Catch ex As Exception MsgBox("Impossible d'accéder à ""C:\Test.txt""") End Sub End Class