Site:  Cours VB.net  
4.210 Message d'erreur.

 

Quand il y a une erreur de syntaxe, VB souligne l'erreur. Mettre le curseur sur l'erreur, un  message d'erreur apparaît:

Pour corriger l faut écrire' Text' et non 'Texte'.

En VB 2005 un panneau d'exclamation permet d'ouvrir une fenêtre proposant le moyen de corriger l'erreur:

 

Ici on met dans la propriété text d'un label un Integer (ligne jaune), alors qu'il faut mettre une String (Option Strict est probablement égal à On); Vb montre la correction : CStr(i) converti i en String.

 

 

Certains messages d'erreur, pour les débutants, sont parfois totalement incompréhensible!!

Voyons quelques messages très fréquents:

 

Instance d'objet

"La référence d'objet n'est pas définie à une instance d'un objet".

La plupart du temps cela veut dire qu'on utilise un membre d'un Objet alors qu'on n'a pas instancié cet objet.
Il y a bien une Classe, mais pas d'objet instancié à partir de cette Classe, on veut utiliser une membre sur la Classe alors qu'on ne peut utiliser un membre que sur une instance.

Exemple:

Dim bt As  Button

bt.BringToFront()

Il n'existe pas réellement d'objet Button : la référence d'objet (bt) n'est donc pas une instance.

Il aurait fallu écrire:

Dim bt As New Button

bt.BringToFront()

 

Membre absent

"Texte n'est pas un membre de System.Windows.Forms.TextBox"

Parfois on fait une bête faute de frappe:

Il faut tapez : text!!

D'autres fois, on se trompe sur la classe et instance.

TextBox1.IsNullOrEmpty  donne le message:

"IsNullOrEmpty n'est pas un membre de System.Windows.Forms.TextBox"

On se trompe: on pense que IsNullOrEmpty est un membre de l'instance TextBox1, en fait c'est un membre de la classe  String; il faut écrire:

If String.IsNullOrEmpty(TextBox1.Text) Then

 

 

Type Attendu.

"Type attendu"

Exemple 1:

Private MyVariable As New Obladioblada

Après As New VB attend un type (Integer , Short, String) ou un nom de classe (Form1..). Obladioblada n'est pas une classe (un type!!)

Exemple 2:

' Déclaration Objet DataSet

Private ObjetDataSet As New dataset

dataset est souligné comme une erreur "type attendu"!!: Après New Vb attend un type d'objet, une classe. Dataset n'est donc pas considéré comme une classe, pourtant c'est une Classe mais elle n'est pas reconnue:

Explication: l'espace de nom contenant la Classe correspondante n'a pas été importé.

 

En fait dataset ne peut être utilisé que si Imports System.Data a été ajouté en début de module, dans ce cas Vb sait que c'est un type .

 

 

Identificateur Attendu. 

Dim 2a As Integer   => 2 est surligné, si on met la souris sur le "2", le message 'Identificateur attendu' apparaît.

Erreur: un nom de variable ne doit pas commencer par un chiffre, Vb considère donc que  '2a' n'est pas un identificateur (un nom de variable' valide).