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:
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.