03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

342 A.3 Fehlermeldungen und Unterbrechung der Ausführung<br />

A.3 Fehlermeldungen und Unterbrechung der Ausführung<br />

Syntaktische Fehler und Laufzeitfehler<br />

Grundsätzlich gibt es zwei Arten von Fehlermeldungen:<br />

• Fehlermeldungen als Folge syntaktischer Fehler<br />

• Fehlermeldungen zur Laufzeit als Folge semantischer Fehler<br />

Ein syntaktischer Fehler liegt z.B. dann vor, wenn der Anforderung<br />

WerteErfassung11 initialisierenErfassung<br />

eine Zahl oder eine Zeichenkette folgt, indem z.B. die Anforderung<br />

WerteErfassung11 initialisierenErfassung ’Jahrgangsstufe 11’<br />

gestellt wird.<br />

Aus der Ausführung dieser Anforderung resultiert die Fehlermeldung “should be<br />

selector”. Dies liegt daran, daß das <strong>SMALLTALK</strong>-System erkennt, daß es sich bei<br />

’Jahrgangsstufe 11’ nicht um einen Methoden-Selektor handelt.<br />

Ein syntaktischer Fehler liegt z.B. auch dann vor, wenn wir die Keyword-Message<br />

“festlegenUeberschrift:” ohne die Angabe eines Arguments an das Empfänger-Objekt<br />

“WerteErfassung11” in der Form “WerteErfassung11 festlegenUeberschrift:” schicken.<br />

In diesem Fall wird die Fehlermeldung “argument missing” angezeigt.<br />

Fehler zur Laufzeit treten insbesondere dann auf, wenn einem Empfänger-Objekt<br />

eine Message geschickt wird und die mit dieser Message korrespondierende Methode<br />

dem Empfänger-Objekt nicht bekannt ist.<br />

Dies ist z.B. dann der Fall, wenn wir innerhalb der Methode “anzeigenDurchschnitt”<br />

(siehe Abschnitt 4.3) statt der Anforderung<br />

self bereitstellenWerte<br />

do: [:einObjekt|summe := summe + einObjekt asInteger]<br />

fälschlicherweise die folgende Anforderung eingetragen haben:<br />

self bereitstellenWerte<br />

do: [:einObjekt|summe := summe + einObjekt]<br />

Wird die Anforderung “summe := summe + einObjekt” ausgeführt, so wird die<br />

binäre Methode “+” innerhalb der Klasse des Empfänger-Objekts “summe” gesucht<br />

und in der Klasse “Integer” gefunden. Die Methode “+” ist in der Klasse<br />

“Integer” folgendermaßen vereinbart:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!