Cet article traite des différentes erreurs que l'on peut rencontrer dans le language de programmation Small Basic. Si vous connaissez d'autres erreurs, veuillez les ajouter dans cet article.


Les Erreurs de Syntaxe

Lorsque vous cliquez sur le bouton [Exécuter], deux processus ont lieu. Le premier est la compilation; l'Environnement Small Basic (SB.exe) appelle le compilateur (SmallBasicCompiler.exe) pour compiler le code source Small Basic en MSIL du Framework .Net. Le second processus est d'exécuter le code compilé. L'Environnement Small Basic appelle le code binaire généré.

A la phase de compilation, le compilateur vérifie que la syntaxe du code source est correcte. S'il y a des erreurs dans ce code, l'Envionnement Small Basic affiche les erreurs de syntaxe. Le message suivant est un exemple d'erreur de syntaxe. "1, 1:" indique le numéro de la ligne et la colonne où se trouve l'erreur dans le code source.

Désolé, nous avons trouvé quelques erreurs…
1,1: La sous-routine 'Foo' n'est pas définie.

Ces erreurs de syntaxe sont listées en bas de la fenêtre d'éditeur active. Si vous cliquez sur la ligne du message d'erreur, le curseur se déplacera sur la ligne dans le code source.

La variable 'xxx' est utilisée, mais aucune valeur ne lui assignée.

Cette erreur survient si on utilise une variable n'a pas été initialisée. L'article suivant décrit un cas particulier de ce type d'erreur.
Small Basic Known Issue: 26720 - Event Subroutines Should Be After They Are Registered (en-US)

Message de l'Erreur de Syntaxe

La variable 'xxx' est utilisée, mais aucune valeur ne lui assignée. Êtes-vous sûre de l'avoir correctement écrite ?

Code d'Exemple

Le code qui suit provoque cette erreur.

a = b
TextWindow.WriteLine( "a=" + a)

Mais celui-ci en revanche compile correctement.

a = b
TextWindow.WriteLine( "a=" + a)
b = a
TextWindow.WriteLine( "b=" + b)

Le fichier n'est pas accessible par le système.

Cette erreur arrive lorsque l'exécutable ou SmallBasicLibrary.dll dans le dossier courant est disponible uniquement en-ligne de votre OneDrive.

Message de l'Erreur de Syntaxe

Le fichier n'est pas accessible par le système. (Exception from HRESULT: 0x80070780)

L'opération 'Xxx.Xxx' est utilisée avec N argument(s), mais nécessite M argument(s).

Si un nombre d'arguments (paramètres) d'une opération est différent de ce qu'elle attend, l'erreur suivante est provoquée.

Message de l'Erreur de Syntaxe

L'opération 'Xxx.Xxx' est utilisée avec N argument(s), mais nécessite M argument(s).

Code d'Exemple

TextWindow.Write("Number (0-15)? ")
decimal = TextWindow.ReadNumber()
txt = "0123456789ABCDEF"
subtxt = Text.GetSubText(txt , number + 1)
TextWindow.WriteLine(subtxt)

TextWindow.WriteLine("Hello, " name )

Ne peut pas trouver l'opération 'Opxxx' dans 'Objxxx'.

Cette erreur à lieu lors l'opération Opxxx n'existe pas dans l'object Objxxx.

Message de l'Erreur de Syntaxe

Ne peut pas trouver l'opération 'Opxxx' dans 'Objxxx'.

Code d'Exemple

Text.WriteLine("Hello World!")

Propriété 'Prxxx' non trouvée dans 'Objxxx'.

Cette erreur à lieu lors la propriété Prxxx n'existe pas dans l'object Objxxx.

Message de l'Erreur de Syntaxe

Propriété 'Prxxx' non trouvée dans 'Objxxx'.

Code d'Exemple

Timer. Tick = Shapes.Move(invador[1] , inx[1] , iny[1])

La sous-routine 'Xxx' n'est pas définie.

Si vous appelez une sous-routine qui n'est pas définie, cette erreur est provoquée.

Message de l'Erreur de Syntaxe

La sous-routine 'Xxx' n'est pas définie.

Code d'Exemple

Foo()
Sub Bar
  TextWindow.WriteLine("Bar")
EndSub

L'opération 'Objxxx.Opxxx' doit retourner une valeur mais ne retourne rien.

Cette erreur à lieu lorsqu'une opération utilisée dans la partie droite d'une affectation n'a pas valeur de retour.

Message de l'Erreur de Syntaxe

L'opération 'Objxxx.Opxxx' doit retourner une valeur mais ne retourne rien.

Code d'Exemple

Timer.Tick Shapes.Move(invador[1]inx[1]iny[1])

Erreurs à l'Exécution

Avertissement : les images qui suivent peuvent ne pas correspondre à ce que vous verrez, car elles dépendent de votre système d'exploitation (elles sont pas les mêmes entre Windows XP, Windows 7 ou encore Windows 8). Toutefois elles afficheront toutes le même type d'information.

Lorsque le programme s'exécute, s'il se passe quelque chose d'inattendu dans la bibliothèque Small Basic, le Framework .Net ou le système Windows, une boîte de dialogue d'erreur sera affichée comme ci-dessous. Dans la zone de texte, se trouve la la pile d'appel. Elle inclus le nom de toutes les sous-routines qui ont été appelées.

Après que cette boîte d'erreur se soit affichée, vous pourrez voir une boite de dialogue s'afficher montrant le programme qui s'est terminé.

Si vous avez Visual Studio d'installé, vous pourrez voir un bouton "Debug".

Dans certaines version de Windows vous pourrez voir le détail du problème en cliquant sur le bouton [v] sous "Afficher le détail du problème".

Une exception a été levée par la cible d'un appel.

Les actions suivantes provoque cette erreur.

  • GraphicsWindow.FillRectangle(0, 0, -1, -1)
  • Shapes.AddText() at the program top (Sera corrigé dans Small Basic v1.2)
  • GraphicsWindow.GetPixel(x, y) while x < 0 (Sera corrigé dans Small Basic v1.2)

La longueur ne peut pas être inférieure à zéro.

Si la longueur de 'length' dans Text.GetSubText(text, start, length) est inférieure à zéro, ce type d'erreur aura lieu.

Code d'exemple

txt = "abcdefghijklmnopqrstuvwxyz"
start = 1
length = -1
subtxt = Text.GetSubText(txt , start, length)
TextWindow.WriteLine(subtxt)

'maxValue' doit être supérieur à zéro.

Si 'maxValue' dans Math.GetRandomNumber(maxValue) est inférieure à zéro, ce type d'erreur aura lieu.

Le cast spécifié n'est pas valide.

"Shapes.GetOpacity()" provoque cette erreur dans certains cas. Le détail de cette erreur est décrit dans l'article TechNet Small Basic Known Issue: 24406 - Shapes.GetOpacity() Causes Cast Error (en-US).

Cette demande n'est pas prise en charge.

Le code suivant provoque cette erreur sur 8.1. (Corrigé dans Small Basic v1.2)

TextWindow.WriteLine("Here")
TextWindow.Hide()
TextWindow.Show()

La valeur était trop grande ou trop petite pour un Decimal..

Si la valeur d'une variable est plus grande que 79228162514264337593543950335 (2^96-1) ou plus petite que -79228162514264337593543950335 (-2^96+1) cette erreur aura lieu.

Code d'Exemple

num = 1
While "True"
  GraphicsWindow. Title = num
   num = num * 10
EndWhile

Autres Erreurs

Microsoft Visual Basic n'a pas été trouvé sur votre machine

Si Visual Basic n'est pas installé, cette erreur a lieu au moment de "Promouvoir" votre programme Small Basic. Visual Basic est inclus dans Visual Studio 2013. Si seul Visual Studio est installé, cette même erreur a lieu. Le lien qui se trouve dans le message est obsolète. Voir cet article (en-US) pour la nouvelle URL.


Voir aussi

Autres Langues