Angenommen, ich habe die folgende Methode:Smalltalk Fehler bei Transcript Umgang
MyClass>>addCategory: aCategory toEvent: anEvent
| cat |
cat := anEvent addCategory: aCategory
...
Jetzt kann das Verfahren #addCategory
entweder ein anderes Objekt zurück (zum Beispiel etwas von Klasse Foo
) oder einen Fehler aus (mit Error signal: 'message'
).
- Im Falle eines Fehlers möchte ich die Nachricht des Fehlers auf dem Transcript drucken.
- Im Falle eines Objekts möchte ich eine Nachricht auf dem Transcript (z. B.
Transcript show: 'Category added!'
) drucken und das Objekt zurückgeben.
Ich habe bei aBlock ifError: aBlock
, so etwas wie folgt aussehen:
MyClass>>addCategory: aCategory toEvent: anEvent
| cat |
cat := [anEvent addCategory: aCategory] ifError: [ :err | Transcript show: err. ]
...
Aber ich kann nicht ganz herausfinden, wie die Variable cat
danach zu handhaben, um das Verhalten Ich möchte zu bekommen.
Welches Verhalten möchten Sie? Was soll "Katze" sein, wenn kein Fehler versus Fehler vorliegt? – lurker
@lurker Im Falle eines Fehlers wird 'cat' von der Klasse' Foo' sein und ich möchte es zurückgeben. Im Falle eines Fehlers möchte ich nur den Fehler ausdrucken. Ich brauche in diesem Fall keine Katze mehr. – JNevens