Sie sind nicht angemeldet.

1

Samstag, 18. April 2009, 11:22

Fehlermeldungs-Erklär-Thread

Also wollte schonmal ein Art Tut schreiben für Fehlermeldungen da es einige doch noch für nötig halten bei den simpelsten Sachen nen Thread aufzumachen :).

Ich fange schonmal an. Vorab: Ich kann natürlich jetzt net gleich alle reinnehmen und erklären deswegen: Fals eure nächste Fehlermeldung nochnet hierdrin ist schickt mir die komplette (!) Fehlermeldung + das Script indem sie drin ist als Example per Pm. Es wäre Hilfreich wenn ihr das Script auf wenige Zeilen beschränken könntet xD.


1.Allgemeine Fehlermeldungen:


1.1. Unknown Function Name:

Diese Fehlermeldung drückt eigentlich nur aus das er den Begriff in dem Script nicht kennt. Wenn hinter dem Begriff zwei geschlossene Klammernpaare sind interpretiert er daraus eine Funktion. Wenn er diesen Funktionsnamen nirgendswo anders im Script findet (Also Func Funktionsname()) kennt er den Inhalt der Funktion folglich nicht und kann sie auchnicht ausführen.

Häufige Vorkommnisse: Include vergessen, Tippfehler

Bsp Include vergessen:

AutoIt-QuellCode

1
2
Local $Array[3] = ["1","2","3"]
_ArrayDisplay($Array) ;Error: Er kennt wegen fehlendem #include <array.au3> die Funktion _ArrayDipslay nicht.


Bsp Tippfehler:

AutoIt-QuellCode

1
2
3
4
5
_Täste(1,2,3)

Func _Teste($x,$y,$z)
 Return $x+$y+$z
Endfunc


1.2. Error in expression:

Diese Fehlermeldung ist recht allgemein und heßt übersetzt soviel wie "Fehler im Ausdruck". Da beim programmieren fast alles ein Ausdruck sein kann gibt es für diese Fehlermeldung ein breiteres Arsenal an Gründen weshalb sie kommen kann.

Häufige Vorkommnisse: Irgendwo irgendwas vergessen ^^ (Bitte hier auchnoch weitere Bsps an mich per Pm falls jmd diese Fehlermeldung unter anderen Umständen zugeflogen kommt, mag jetzt hier net 2 std rumkramen xD)

Bsp Irgendwo irgendwas vergessen:

AutoIt-QuellCode

1
2
MsgBox(,"","Wer das hier liest ist doof"); Da fehlt der 1. parameter was nicht beanstandet wird. 
;Stattdessen sagt er das es ein Fehler ist da das Komma in den Klammern als 1. Zeichen zu haben.


1.3 Syntax Error

Eine "Syntax Error" Fehlermeldung hat einen sehr sehr weiten Verwendungszweck, deshalb kann ich hier jetzt nichts so ausführlich erklären. Im Allgemeinen bezeichnet diese Fehlermeldung einen allgemeinen Syntax Error (lol). Dieser Entsteht eigentlich nur bei Leichtsinnsfehlern. Um ihn zu beheben solltet ihr euch ganz genau die angegebene Zeile +/- 5 Zeilen (oder mehr) anschaun. Es sind meistens allgemeine Sachen die einfach gegen die Syntaxregeln verstoßen (Bsp siehe weiter^^)

Häufige Vorkommnisse: Leichtsinn, Vergessene Operatoren o.ä.

Bsp:

AutoIt-QuellCode

1
2
3
            "Connection: close" & @CRLF & _  ; Der Freistehende Unterstrich hier signalisiert dem Compiler das der Befehl/Die Zeile in der nächsten Zeile weitergeht.
            "Content-Type: text/html; charset=utf-8" & @CRLF & _  ;Der Compiler hängt dann automatisch diese Zeile an die oben dran
           ; Und diese wieder oben dran. Doof nur das hier nichts außer ein Kommentar ist das der Compiler grunsätzlich übersieht :).


1.4 Variable used without being declared.

Gibt an dass eine Variable benutzt wurde obwohl sie garnicht existiert.

Häufige Vorkommnisse: Deklarierung vergessen, Tippfehler

Bsp Deklarierung vergessen:

AutoIt-QuellCode

1
$Var1 = 10 + $Var2 ;AutoIt weiß nicht was $Var2 is da nirgendswo deklariert.


Bsp Tippfehler:

AutoIt-QuellCode

1
2
$Var2
$Var1 = 10 + $Var22 ;$Var22 != $Var2 wegen Tippfehler, deswegen wird $Var22 als undeklariert angesehen.


2. Syntaxbezogene Fehlermeldungen

2.1. Missing seperator charakter after Keyword:

Diese Fehlermeldung gibt an das irgendwo ein (Trenn-)Zeichen wie eine Klammer (z.B.) fehlt.

Häufige Vorkommnisse:
Textschnippsel im Script vergessen, Klammer vergessen

Bsp Textschnippsel im Script vergessen:

AutoIt-QuellCode

1
2
3
jsgdha; Hier denkt er es wär ein Funktionsname und bemängelt deswegen das imaginäre vergessen der Klammern.

MsgBox(0,"","Wer das hier liest ist doof")


Bsp Klammer vergessen:

AutoIt-QuellCode

1
MsgBox0,"","Wer das hier liest ist doof"); Die Öffnende Klammer fehlt.


2.2. Error parsing function call

Auch diese Fehlermeldung ist recht allgemein und sagt einfach aus das irgendwo im "function call" sprich im Funktionsaufruf etwas falsch ist.

Häufige Vorkommnisse: Schließende Klammer vergessen

Bsp: Schließende Klammer vergessen:

AutoIt-QuellCode

1
MsgBox(0,"","Wer das hier liest ist doof" ; Hier erkennt er nicht einfach das Vergessen der schließenden Klammer sondern sagt einfach Error ^^


2.3 Incorrect number of parameters in function call

Diese Fehlermeldung drückt aus das ihr in einem Funktionsaufruf zuviele oder zu wenige Parameter übergeben werden. Falls ihr mal einen nicht übergeben wollt überspringt ihn mit "" (Bei int-Parametern häufig auch mit -1). Optionale Parameter dürfen nur hintendran weggelassen werden!

Häufige Vorkommnisse: Komma im Funktionsaufruf vergessen, einfach einen Parameter vergessen ^^

Bsp Komma vergessen:

AutoIt-QuellCode

1
MsgBox(0,"""Wer das hier liest ist doof") ; Ja eindeutig ^^. Er denkt es werden nur 2 Parameter übergeben (was ja auch so ist)


Bsp Parameter vergessen:

AutoIt-QuellCode

1
MsgBox(0,""); Auch eindeutig denke ich ^^.


3. Array-Fehlermeldungen

3.1. Array variable has incorrect number of subscripts or subscript dimension range exceeded

Diese Fehlermeldung gibt an das man irgendwo ein Array benutzen will mit einem Index (Das was dann in den eckigen Klammern steht) der garnicht existier/deklariert wurde.

Häufige Vorkommnisse: Unachtsamkeit xD, Überdimensionale For-Schleife, Falsche Benutzung von UBound

Bsp Unachtsamkeit:

AutoIt-QuellCode

1
2
3
Local $Array[3] ; Deklariert Index (Das in den eckigen Klammern) 0,1,2

$Array[3] = "5" ; Ruft Index 3 auf der aber nicht deklariert wurde


Bsp Überdimensionale For-Schleife:

AutoIt-QuellCode

1
2
3
For $i = 0 To 3 ;Befüllt Index 0 - 3 mit "5", doof nur das es Index 3 garnicht gibt
    $Array[$i] = "5" 
Next


Bsp Falsche Benutzung von UBound:

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
Local $Array[3] ; Deklariert Index (Das in den eckigen Klammern) 0,1,2

For $i = 0 To UBound($Array) ;ACHTUNG: UBound gibt indemfall 3 zurück weil das Array 3 Plätze hat.
                            ; Wenn daoben jetzt aber 3 steht dann überschreiten wir ja den Index wieder.
    $Array[$i] = "5" 
Next

;Richtige Lösung

For $i = 0 To Ubound($Array) - 1
    $Array[$i] = "5"
Next


3.2 Subscript used with non-Array variable:

Ja das erklärt sich der Fall ganz von selbst wenn man es wörtlich Übersetzt: (Hierbei beachten: Subscript hat nichts mit Subway oder Script zutun) Index wurde mit/bei einer "nicht-Array" Variablen benutzt. Auf gut Deutsch: Ihr benutzt eine Variable als Array die garkein Array ist.

Häufige Vorkommnisse:
Funktionen returnen nicht wie erwartet ein Array

Bsp Funktionen returnen nicht wie erwartet ein Array:

AutoIt-QuellCode

1
2
3
$Array = PixelSearch(0,0,0,0,0xabcde123) ;habe hier extra den extremfall genommen, geht natürlich auch anders.
;Fakt ist das wenn das Pixelsearch nichts findet es auch kein Array zurückgibt und damit auch nicht $Array ,was jetzt noch eine normale Variable ist, in ein Array umformt
MouseMove($Array[0],$Array[1]);weshalb es hier nicht bentutz werden kann da es kein Array ist.



Soooo das wars erstmal von "Fehlermeldungen aus dem Ärmel zieh". Wenn ihr noch welche habt (was sicher so ist) bitte einfach mich per Pm zuspamen mit wiegesagt Scipt und exakter (!) Fehlermeldung. Ich werde sie dann hier adden und erklären.

Liebe Grüße
Noobyn00b


Log:
24.04.09: Syntax Error hinzugefügt.
18.01.10: Variable used without being declared hinzugefügt.
Signatur
Wenn freundlich sein Lügen bedeutet, bin ich gerne ein Arschloch.

Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von »noobyn00b« (19. März 2010, 14:33)


Hilfe für Kinder in Uganda

2

Samstag, 18. April 2009, 14:08

soo... den link häng ich mir an die Pinwand und immer wenn ne Frage kommt wird das gepostet^^
nice nice!
Signatur
Du möchtest Autoit lernen, aber weißt nicht wo du anfangen sollst? : [ANFÄNGER HIER REIN] Das Erlangen von Autolt Grundwissen

3

Freitag, 24. April 2009, 16:41

kannst du auch schreiben was bei ERROR: syntax error der Fehler ist?

Wäre sehr Hilfreich
Signatur Wer Rechtschreibfehler findet kann sie behalten!! :gamer:

4

Freitag, 24. April 2009, 16:48

Syntax Error bedeutet, dass der Befehl falsch aufgebaut ist.
z.B. zu wenige Parameter angegeben oder zu viele bzw. beim Vergessen einer Klammer kommt glaube ich auch Syntax-Error.
Wenn du mal ein " vergisst kommt auch Syntax Error.
Meistens sind Syntax Errors also irgendwelche leichtsinnigen Fehler die sich einbauen.
Signatur

5

Freitag, 24. April 2009, 16:49

Das ist ein sehr allgemeiner Fehler, bspscript + fehlermeldung per pn schicken.
Signatur
Wenn freundlich sein Lügen bedeutet, bin ich gerne ein Arschloch.

6

Freitag, 24. April 2009, 17:02

Ok danke
Signatur Wer Rechtschreibfehler findet kann sie behalten!! :gamer:

7

Freitag, 24. April 2009, 17:51

Dein Fehler wurde hinzugefügt :).
Signatur
Wenn freundlich sein Lügen bedeutet, bin ich gerne ein Arschloch.

8

Donnerstag, 2. Juli 2009, 19:18

Von mir 5 Sterne für den Thread. Ich weiß nicht wieviele verschiedene Fehlermeldung in AutoIT gibt, aber dieser Thread wir immer nützen :P
Signatur
Projekt: TCP Network Spiel
Server : 70%
Engine: 0%
Client : 0%
Gesamtprozess: 23%

Es wird ein Mini-2D Multiplayergame.

9

Mittwoch, 9. September 2009, 16:25

Hi,
ich hoffe, das zählt nicht unter "dämliche Fragen, etc"^^ Also: Ich habe einen Fehler und hab ihn in diesem Thread nicht gefunden..der fehler heißt so:

Zitat

WARNING: $RS2: possibly used before declaration.

kann sein, dass man dass eigendlich wissen müsste, aber normalerweise kommt bei mir nur der Syntax Error.

Achja..falls es den Fehler hier doch geben sollte sorry sorry sorry dann hab ich ihn nämlich nicht gefunden (die Sufu hab ich auch benutzt^^

Edit: Liegt das vllt daran, dass ich kein z.B. Global $RS2 benutzt habe?
Signatur gähn :|

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Noob4@ll« (9. September 2009, 16:37)


10

Mittwoch, 9. September 2009, 16:44

Manchmal ist AutoIt auch etwas doof. :doofy:
Es arbeitet anscheinend den Code vor dem Compilieren sequentiell durch und checkt nicht, dass die Var weiter unter deklariert ist.
Normalerweise kann man das ignorieren.

Natürlich kannst du sie oben erst mal deklarieren, das trägt ja schließlich auch zur Dokumentation bei.
Und wer will in einem 500 Zeilen Script alle Vars zusammensuchen, wenn man später mal was ergänzen will.

Ach ja - und wenn kommt "Press Any Key to continue": Die ANYKEY - Taste ist die breite, unten in der Mitte :lol:
Signatur Schon gewusst:
In Asse nutzen sie ein ganz neues Verfahren zur Verhinderung einer
Kernschmelze bei radioaktivem Abfall.


(Wassereinbruch in den Salzstock; tausende Fässer mit Atommüll drohen das Grundwasser zu verseuchen)


Probebohrungen in Gorleben haben laut zensiertem Bericht ergeben, daß das dort nicht passieren kann.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Zaphod« (9. September 2009, 16:47)


11

Mittwoch, 9. September 2009, 16:52

Hallo,

Von den tausenden Fehlermeldungen ein paar wenige, doch kommt es so vor, als wären es viele ...
Ne, Gutes Tut, kann man sich eine Scheibe davon Abschneiden zum lernen =D

mfg Timo
Signatur

12

Mittwoch, 9. September 2009, 19:40

da ich noch anfänger find ich das echt klasse =)

13

Sonntag, 13. September 2009, 17:14

Finde die Fehlermeldungen eigentlich recht selbsterklärend, aber trotzdem schönes Tut! =)
Signatur Sehr neu dabei!

Ähnliche Themen