Upload
vuongmien
View
220
Download
1
Embed Size (px)
Citation preview
if (programmierCODE ==funktioniert.nicht) {folge.dieser.anleitung;}
HTML
JAVASCRIPTPHP PROGRAMMIEREN
CSSMYS QL
5 FEHLERARTEN#1Ein lexikalischer Fehler liegt dann vor, wenn du bei der Eingabe von Java-Befehlen einen Recht-schreibfehler machst, z.B. wenn du statt "while" das Wort "whail" eingibst, weil du keine Ahnung von Englisch hast. Oder wenn du statt "vor()" den Befehl "Vor()" eingeben. Java unterscheidet ganz streng zwischen Klein- und Gross-schreibung.
Lexalische Fehler #2Ein syntaktischer Fehler ist so etwas wie ein Grammatikfehler. Alle Wörter sind zwar richtig ge-schrieben, dennoch der Satzbau ist nicht richtig.
In vielen Fällen werden Syntax-fehler durch falsch gesetzte oder fehlende Zeichen wie Semikola, Kommata und Klammern oder bedeu-tungstragende Wörter.
Syntaktische Fehler #3Etwas komplizierter zu erklären: Wenn du in einer Programmierspra-che eine Variable verwendest und diese Variable vorher noch nicht deklariert hast, dann ist das ein semantischer Fehler. Lexikalisch und syntaktisch ist alles korrekt - aber die Variable existiert noch gar nicht. Denk einfach an den Satz «Die Maus wird von der Tischdecke gefressen». Lexika-lisch ist hier alles richtig, syntaktisch ebenfalls – aber Tischdecken können keine Mäuse fressen.
Semantische Fehler #4Ein Laufzeitfehler taucht erst während der Programmausführung auf und wird noch nicht während der Programmentwicklung erkannt.Typisches Beispiel für so einen Fehler sind die Division durch Null, der Aufruf ungültiger Funk-tionen oder die fehlerhafte Nut-zung des Inputs.Laufzeitfehler können zum Absturz des Programms führen.
Laufzeitfehler
#5Laufzeitfehler führen zu Abstür-zen, Logische Fehler aber meistens nicht, sondern nur zu völlig fal-schen Ergebnissen. Ein Beispiel: Du willst einen Pro-grammteil schreiben, der die Zahlen 1 bis 10 addiert und tippst ein:
summe = 0;for (int i=1; i<10; i++) summe = summe + i;
Das Programm gibt aber nicht wie erwartet die Zahl 55 aus, sondern 46. Du hättest nämlich nicht i < 10 schreiben dürfen, sondern stattdessen i <= 10, was ja nicht dasselbe ist.
Logische Fehler
Welchen Art von Fehler erhälst du?
starte hier
Erhälst du einen
Fehler, wenn du den Code
ausführst?Enthält der
Code Schleifen oder andere Anweisungen?
NEIN
ZWEI NUMMERN WELCHE GLEICH SEIN SOLLTEN,
SIND ES NICHT
Du vergleichst eine Zahl mit einer Zahl von einer String-Zah-
lenreihen. (Bsp.: if 5 ==“5“)
Ausnahme: Javascript
if 5 ==“5“ truejedoch 5===“5“ false
EINE KOMPLEXE BEDIN-GUNG ERGIBT NICHT DAS ERWARTETE ERGEBNIS
Die Reihenfolge der Wichtigkeit ist nicht eindeutig – füge
einige Klammern ein.
EINE LISTE, DIE FÜR JEDE WIEDERHOLUNG EINEN WERT HABEN
SOLL, HAT NUR EINEN EINZELNEN WERT
Du hast innerhalb einer Schlei-fe eine Liste definiert: bewege sie ausserhalb der Schleife.
EINE SCHLEIFE, DIE DIE BEREICHSFUNKTION BRAUCHT, VERPASST DEN
LETZTEN WERT
Die Bereichsfunktion ist an ihr Ende angelangt: erhöhe um
eins.
DU VERSUCHST EINE SCHLEIFE ÜBER EINE AUFLISTUNG VON ZEI-
CHENFOLGEN ZU MACHEN, DOCH ERHÄLST INDIVI-DUELLE CHARAKTERE
Du hast einen Wiederholungsfeh-ler in einer Schleife.
DU VERSUCHST MEHRFA-CHE LINIEN IN EINER DATEI ZU SCHREIBEN, ABER BEKOMMST NUR
EINE HIN.
Du hast die Datei innerhalb der Schleife geöffnet: bewege sie
nach draussen.
JA
IFLOOPS
ATTRIBUTE FEHLER
Der Aufruf des Attributs passt
nicht zum Objekt.
SYNTAXERROR
Du hast die Ausrufezeichen beim String vergessen.
Du hast die Doppelpunkte am
Ende einer Linie verges-
sen.
Du hast eine verschiedene
Anzahl von of-fenen und ge-schlossenen Klammern in
einer Aussage.
TYPE ERROR
Du hast eine falsche Anwei-
sung (=,+,-,...)
an die falsche Art von Objek-ten benutzt.
Ein Objekt, bei dem du denkst, es hätte einen Wert hat ei-
gentlich keinen.
Du hast in einem Listenab-schnitt keine ganze Zahlen
benutzt.
Du hast eine Methode / Funk-tion mit der
falschen Anzahl oder Arten von Argumenten auf-
gerufen
EINZUGERROR
Du hast eine Mischung von
Tabs und Leer-zeichen be-
nutzt.
Du hast nicht alle Zeilen
richtig einge-rückt.
IOError
Du versuchst ein Dokument zu öffnen, welches
nicht exis-tiert.
KEYERROR
Du hast einen Schlüsselnamen benutzt, der nicht exis-
tiert.
NAMEFEHLER
Du hast eine Variable,Funk-tion oder Me-thode falsch geschrieben.
Du hast verges-sen die Variab-le zu definie-
ren.
Dein Code be-nutzt eine Va-riable ausser-halb des Anwe-dungsbereiches.
Dein Code ruft eine Funktion auf, bevor sie
definiert wurde.
Du hast die An-führungszeichen
vergessen.